├── server ├── udf │ ├── q_UDFLibC.h │ ├── q_UDFLibC.dll │ ├── Notes.txt │ ├── q_UDFLibC.sql │ └── Makefile ├── compiler │ ├── update_ref.sh │ ├── monitor.sh │ ├── make_all.sh │ ├── modules │ │ ├── markdown.js │ │ ├── async_data_mysql57.sql │ │ ├── async_data_fb25.sql │ │ ├── async_data_mssql12.sql │ │ ├── emoji.js │ │ ├── hogan_ext.js │ │ └── widgets │ │ │ ├── G960_widget.js │ │ │ └── notify_widget.js │ └── quicc-gaze.js ├── database │ ├── db_fb25.js │ ├── db_mssql12.js │ ├── db_mysql57.js │ ├── db_nuosql32.js │ ├── db_odsql11.js │ ├── db_common.js │ ├── z_Insertref.sql │ ├── z_pkcache.sql │ ├── isql-access.sh │ └── db_ms_sql_gen.js ├── middleware │ └── example.js └── IDE │ └── json_tree.js ├── install ├── install_script.sh ├── crontab-e.md ├── make_app.sh ├── make_udf.sh ├── clean.sh ├── debug_web.sh ├── quick-isql.sql ├── tests │ ├── database │ │ └── fakerun.sql │ └── tests.md ├── quick-isql.sh ├── patch.sh ├── winstart-develop.bat ├── post_script.sh └── Patches │ ├── ss-hogan │ ├── engine.js │ └── new_engine.js │ └── socketstream │ └── new_http.js ├── client ├── views │ └── empty_folder.html ├── templates │ ├── Widgets │ │ ├── PickFieldEditSeperator.html │ │ ├── RadioFieldEditSeperator.html │ │ ├── RadioFieldEdit.html │ │ ├── RadioFieldEditUnChecked.html │ │ ├── PickFieldEditUnChecked.html │ │ ├── PickFieldEdit.html │ │ └── Uploader.html │ └── chat │ │ └── message.html ├── static │ ├── others │ │ ├── zx │ │ │ ├── This folder is for web accesable js files │ │ │ └── zxCalendar.js │ │ └── qqui1 │ │ │ ├── CSSTree │ │ │ ├── node.png │ │ │ ├── vline.png │ │ │ ├── lastnode.png │ │ │ ├── README │ │ │ ├── CSSTree.css │ │ │ └── CSSTree.html │ │ │ ├── emoji │ │ │ └── emoji.png │ │ │ ├── DataTables │ │ │ ├── media │ │ │ │ └── images │ │ │ │ │ ├── favicon.ico │ │ │ │ │ ├── sort_asc.png │ │ │ │ │ ├── sort_both.png │ │ │ │ │ ├── sort_desc.png │ │ │ │ │ ├── Sorting icons.psd │ │ │ │ │ ├── back_disabled.png │ │ │ │ │ ├── back_enabled.png │ │ │ │ │ ├── forward_disabled.png │ │ │ │ │ ├── forward_enabled.png │ │ │ │ │ ├── back_enabled_hover.png │ │ │ │ │ ├── sort_asc_disabled.png │ │ │ │ │ ├── sort_desc_disabled.png │ │ │ │ │ └── forward_enabled_hover.png │ │ │ ├── license.txt │ │ │ └── Readme.md │ │ │ ├── jquery │ │ │ └── images │ │ │ │ ├── ui-icons_222222_256x240.png │ │ │ │ ├── ui-icons_2e83ff_256x240.png │ │ │ │ ├── ui-icons_454545_256x240.png │ │ │ │ ├── ui-icons_888888_256x240.png │ │ │ │ ├── ui-icons_cd0a0a_256x240.png │ │ │ │ ├── ui-bg_flat_0_aaaaaa_40x100.png │ │ │ │ ├── ui-bg_flat_75_ffffff_40x100.png │ │ │ │ ├── ui-bg_glass_55_fbf9ee_1x400.png │ │ │ │ ├── ui-bg_glass_65_ffffff_1x400.png │ │ │ │ ├── ui-bg_glass_75_dadada_1x400.png │ │ │ │ ├── ui-bg_glass_75_e6e6e6_1x400.png │ │ │ │ ├── ui-bg_glass_95_fef1ec_1x400.png │ │ │ │ └── ui-bg_highlight-soft_75_cccccc_1x100.png │ │ │ ├── uniform │ │ │ ├── themes │ │ │ │ └── default │ │ │ │ │ └── images │ │ │ │ │ ├── bg-input.png │ │ │ │ │ ├── sprite.png │ │ │ │ │ └── bg-input-focus.png │ │ │ └── .gitignore │ │ │ ├── timepicker │ │ │ ├── jquery-ui-timepicker-addon.css │ │ │ └── jquery-ui-sliderAccess.js │ │ │ └── gallery │ │ │ └── gallery.css │ ├── favicon.ico │ ├── favicon.xcf │ ├── Hamburger.ico │ ├── Hamburger.png │ └── images │ │ ├── Hamburger.png │ │ ├── qqui1 │ │ ├── add.png │ │ ├── go.png │ │ ├── off.png │ │ ├── on.png │ │ ├── ql.png │ │ ├── x.png │ │ ├── alert.png │ │ ├── check.png │ │ ├── cloud.png │ │ ├── dvsup.png │ │ ├── home.png │ │ ├── arrow-r.png │ │ ├── arrow-se.png │ │ ├── bg-btn.png │ │ ├── bg-input.png │ │ ├── bubble.png │ │ ├── coffee.png │ │ ├── document.png │ │ ├── eq-range.png │ │ ├── face-a.png │ │ ├── face-b.png │ │ ├── face-c.png │ │ ├── face-d.png │ │ ├── face-off.png │ │ ├── graphy.png │ │ ├── gridme.png │ │ ├── h-icon.png │ │ ├── itoggle.png │ │ ├── medal-on.png │ │ ├── n-count.png │ │ ├── outlets.png │ │ ├── select.png │ │ ├── select2.png │ │ ├── shadow.png │ │ ├── slider.png │ │ ├── sort_asc.png │ │ ├── sprite.png │ │ ├── star-off.png │ │ ├── star-on.png │ │ ├── toolbar.png │ │ ├── bar-sprite.png │ │ ├── bgnoise_lg.png │ │ ├── cancel-off.png │ │ ├── cancel-on.png │ │ ├── closelabel.png │ │ ├── custom_hex.png │ │ ├── face-a-off.png │ │ ├── face-b-off.png │ │ ├── face-c-off.png │ │ ├── face-d-off.png │ │ ├── input-boxt.png │ │ ├── list-icons.png │ │ ├── medal-off.png │ │ ├── search-box.png │ │ ├── sort_both.png │ │ ├── sort_desc.png │ │ ├── star-half.png │ │ ├── user-thumb.png │ │ ├── action-sprite.png │ │ ├── addressbook.png │ │ ├── alert-lines.png │ │ ├── arrows-ffffff.png │ │ ├── back_disabled.png │ │ ├── back_enabled.png │ │ ├── cancel-on-big.png │ │ ├── chosen-sprite.png │ │ ├── classy_fabric.png │ │ ├── custom_hsb_b.png │ │ ├── custom_hsb_h.png │ │ ├── custom_hsb_s.png │ │ ├── custom_rgb_b.png │ │ ├── custom_rgb_g.png │ │ ├── custom_rgb_r.png │ │ ├── custom_submit.png │ │ ├── dark-pattern.jpg │ │ ├── dark_dotted.png │ │ ├── dark_matter.png │ │ ├── element-back.png │ │ ├── fabric_plaid.png │ │ ├── handle-sprite.png │ │ ├── icons-black.png │ │ ├── icons-small.png │ │ ├── notify-icons.png │ │ ├── p-action-icon.png │ │ ├── pattern-cross.png │ │ ├── pineapplecut.png │ │ ├── range-back-l.png │ │ ├── slider-handle.png │ │ ├── slider_center.png │ │ ├── slider_left.png │ │ ├── slider_right.png │ │ ├── star-half-big.png │ │ ├── star-off-big.png │ │ ├── star-on-big.png │ │ ├── toggle-sprite.png │ │ ├── user-thumb1.png │ │ ├── ChevronOverlay.png │ │ ├── bg-input-focus.png │ │ ├── cancel-off-big.png │ │ ├── colorpicker_hex.png │ │ ├── forward_enabled.png │ │ ├── search-text-box.png │ │ ├── slider-ui-back.png │ │ ├── subtle_zebra_3d.png │ │ ├── checkered_pattern.png │ │ ├── colorpicker_hsb_b.png │ │ ├── colorpicker_hsb_h.png │ │ ├── colorpicker_hsb_s.png │ │ ├── colorpicker_rgb_b.png │ │ ├── colorpicker_rgb_g.png │ │ ├── colorpicker_rgb_r.png │ │ ├── colorpicker_submit.png │ │ ├── custom_background.png │ │ ├── forward_disabled.png │ │ ├── right-panel-back.png │ │ ├── sort_asc_disabled.png │ │ ├── sort_desc_disabled.png │ │ ├── colorpicker_overlay.png │ │ ├── notifiication-sprite.png │ │ ├── colorpicker_background.png │ │ └── zx-main-icon-sprite-V100.png │ │ ├── Hamburger.jpeg │ │ ├── HamburgerBold.png │ │ ├── Green_strawberry Icon.jpeg │ │ ├── Green_strawberryIconAlpha.ico │ │ ├── Green_strawberryIconAlpha.jpeg │ │ └── Green_strawberryIconAlpha.png ├── code │ └── app │ │ ├── entry.js │ │ └── plugins.js └── source │ └── plugins.js ├── dev_server.sh ├── bin ├── sql-mvc ├── sql-mvc.js └── clean.sh ├── doc ├── win │ └── win-run-as-admin.png ├── Compiler │ └── Debugging.md ├── Tutorial_Config_Options.md ├── index.md ├── Tutorial_Facebook_login.md ├── Tutorials.md ├── Debugging.md ├── BaseSystem │ └── User Preferences.md ├── Tutorial_Record_Context_Scripts.md ├── Tutorial_SQL_Extensions.md ├── Getting_Started.md ├── Tutorial_making_field_elements.md ├── Theory │ ├── Javascript_is_not_fit_for_writing_web_applications.md │ ├── Origin.md │ ├── Compare_with_other_platforms.md │ ├── Is it possible for a paradigm shift to change the face of app programming forever.md │ └── About_Lafras.md ├── Tutorial_User_management.md ├── Caveats.md ├── Source │ └── General.md ├── Tutorial_Saving_Updates.md ├── Install-windows.md ├── Tutorial_units_of_measure.md ├── syntax.md ├── Tutorial_Aggregate_classes.md ├── Tutorial_validation_hardening.md ├── npm_Installable_modules.md ├── Install-linux.md ├── DBspecific │ └── MySQL Guide.md ├── Todo │ └── TodoOverview.md ├── Elements.md └── Install-git.md ├── Quale ├── Standard │ └── Home │ │ ├── Guest │ │ ├── MainMenu │ │ │ ├── 02_Demos.quicc │ │ │ ├── 05_Documentation │ │ │ │ ├── 10_Introduction.quicc │ │ │ │ ├── 20_Tutorials.quicc │ │ │ │ └── 30_Getting_Started.quicc │ │ │ └── 02_Demos │ │ │ │ ├── 09_enter_todo_mvc.quicc │ │ │ │ ├── 10_todo_mvc.quicc │ │ │ │ └── 20_gallery_view.quicc │ │ ├── Todo │ │ │ ├── PerSessionEdit.quicc │ │ │ └── PerSessionToDo.quicc │ │ ├── Views │ │ │ ├── PerSessionToDo.quicc │ │ │ └── ShowPeers.quicc │ │ ├── Dashboard │ │ │ ├── Dashboard.quicc │ │ │ └── Dashboard-Include.quicc │ │ ├── Models │ │ │ ├── TodoModel.quicc │ │ │ └── gallery_Model.quicc │ │ ├── LayoutOpen.quicc │ │ ├── Menu │ │ │ ├── SwitchBar.quicc │ │ │ └── SlideBar.quicc │ │ ├── Index.quicc │ │ └── Controllers │ │ │ └── TodoController.quicc │ │ ├── Operator │ │ ├── Inbox.quicc │ │ ├── Preferences.quicc │ │ └── Switch.quicc │ │ ├── Layout │ │ ├── TopBar.quicc │ │ ├── TopBarGuest.quicc │ │ ├── Notify.quicc │ │ ├── TopLeft.quicc │ │ ├── ProfileMenuGuest.quicc │ │ └── ProfileMenu.quicc │ │ ├── LayoutClose.quicc │ │ ├── SysAdmin │ │ ├── Index.quicc │ │ └── MainMenu │ │ │ └── 03_Users │ │ │ └── 09_Manage.quicc │ │ ├── SelfServe │ │ ├── Switch.quicc │ │ ├── ForgotPassword_step3.quicc │ │ ├── Index.quicc │ │ ├── ForgotPassword.quicc │ │ ├── RegisterNewUser.quicc │ │ ├── ForgotPassword_step2.quicc │ │ ├── RegisterNewUser_step2.quicc │ │ └── RegisterNewUser_step3.quicc │ │ ├── Users │ │ └── Edit_Users.quicc │ │ ├── LayoutOpen.quicc │ │ └── User │ │ └── Index.quicc ├── Lib │ └── Models │ │ ├── replicator_model.quicc │ │ └── extras_model.quicc └── Database │ ├── fb25 │ └── Models │ │ └── extras_model.quicc │ └── mssql12 │ └── Models │ └── extras_model.quicc ├── index.js ├── .gitignore ├── lib ├── cli │ └── index.js └── sql-mvc.js └── package.json /server/udf/q_UDFLibC.h: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /install/install_script.sh: -------------------------------------------------------------------------------- 1 | #empty -------------------------------------------------------------------------------- /client/views/empty_folder.html: -------------------------------------------------------------------------------- 1 | empty_folder -------------------------------------------------------------------------------- /client/templates/Widgets/PickFieldEditSeperator.html: -------------------------------------------------------------------------------- 1 |
-------------------------------------------------------------------------------- /client/templates/Widgets/RadioFieldEditSeperator.html: -------------------------------------------------------------------------------- 1 |
-------------------------------------------------------------------------------- /dev_server.sh: -------------------------------------------------------------------------------- 1 | cd -P . 2 | pwd 3 | nodejs app.js -p 3000 4 | -------------------------------------------------------------------------------- /client/static/others/zx/This folder is for web accesable js files: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bin/sql-mvc: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | node --es_staging sql-mvc.js "$@" 3 | 4 | -------------------------------------------------------------------------------- /install/crontab-e.md: -------------------------------------------------------------------------------- 1 | #add this to crontab -e 2 | @reboot /bin/bash /root/sql-mvc/run_web.sh 3 | -------------------------------------------------------------------------------- /server/udf/q_UDFLibC.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/server/udf/q_UDFLibC.dll -------------------------------------------------------------------------------- /client/static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/favicon.ico -------------------------------------------------------------------------------- /client/static/favicon.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/favicon.xcf -------------------------------------------------------------------------------- /client/static/Hamburger.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/Hamburger.ico -------------------------------------------------------------------------------- /client/static/Hamburger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/Hamburger.png -------------------------------------------------------------------------------- /doc/win/win-run-as-admin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/doc/win/win-run-as-admin.png -------------------------------------------------------------------------------- /client/static/images/Hamburger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/Hamburger.png -------------------------------------------------------------------------------- /client/static/images/qqui1/add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/add.png -------------------------------------------------------------------------------- /client/static/images/qqui1/go.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/go.png -------------------------------------------------------------------------------- /client/static/images/qqui1/off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/off.png -------------------------------------------------------------------------------- /client/static/images/qqui1/on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/on.png -------------------------------------------------------------------------------- /client/static/images/qqui1/ql.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/ql.png -------------------------------------------------------------------------------- /client/static/images/qqui1/x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/x.png -------------------------------------------------------------------------------- /Quale/Standard/Home/Guest/MainMenu/02_Demos.quicc: -------------------------------------------------------------------------------- 1 | 2 | 3 | <#dropinmenu (icon:"nav-icon chart-icon",title:"Demo pages")> 4 | -------------------------------------------------------------------------------- /client/static/images/Hamburger.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/Hamburger.jpeg -------------------------------------------------------------------------------- /client/static/images/qqui1/alert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/alert.png -------------------------------------------------------------------------------- /client/static/images/qqui1/check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/check.png -------------------------------------------------------------------------------- /client/static/images/qqui1/cloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/cloud.png -------------------------------------------------------------------------------- /client/static/images/qqui1/dvsup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/dvsup.png -------------------------------------------------------------------------------- /client/static/images/qqui1/home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/home.png -------------------------------------------------------------------------------- /Quale/Standard/Home/Guest/MainMenu/05_Documentation/10_Introduction.quicc: -------------------------------------------------------------------------------- 1 | <#include(type="md" file="./README.md") #> 2 | 3 | 4 | -------------------------------------------------------------------------------- /client/static/images/HamburgerBold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/HamburgerBold.png -------------------------------------------------------------------------------- /client/static/images/qqui1/arrow-r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/arrow-r.png -------------------------------------------------------------------------------- /client/static/images/qqui1/arrow-se.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/arrow-se.png -------------------------------------------------------------------------------- /client/static/images/qqui1/bg-btn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/bg-btn.png -------------------------------------------------------------------------------- /client/static/images/qqui1/bg-input.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/bg-input.png -------------------------------------------------------------------------------- /client/static/images/qqui1/bubble.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/bubble.png -------------------------------------------------------------------------------- /client/static/images/qqui1/coffee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/coffee.png -------------------------------------------------------------------------------- /client/static/images/qqui1/document.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/document.png -------------------------------------------------------------------------------- /client/static/images/qqui1/eq-range.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/eq-range.png -------------------------------------------------------------------------------- /client/static/images/qqui1/face-a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/face-a.png -------------------------------------------------------------------------------- /client/static/images/qqui1/face-b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/face-b.png -------------------------------------------------------------------------------- /client/static/images/qqui1/face-c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/face-c.png -------------------------------------------------------------------------------- /client/static/images/qqui1/face-d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/face-d.png -------------------------------------------------------------------------------- /client/static/images/qqui1/face-off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/face-off.png -------------------------------------------------------------------------------- /client/static/images/qqui1/graphy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/graphy.png -------------------------------------------------------------------------------- /client/static/images/qqui1/gridme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/gridme.png -------------------------------------------------------------------------------- /client/static/images/qqui1/h-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/h-icon.png -------------------------------------------------------------------------------- /client/static/images/qqui1/itoggle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/itoggle.png -------------------------------------------------------------------------------- /client/static/images/qqui1/medal-on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/medal-on.png -------------------------------------------------------------------------------- /client/static/images/qqui1/n-count.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/n-count.png -------------------------------------------------------------------------------- /client/static/images/qqui1/outlets.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/outlets.png -------------------------------------------------------------------------------- /client/static/images/qqui1/select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/select.png -------------------------------------------------------------------------------- /client/static/images/qqui1/select2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/select2.png -------------------------------------------------------------------------------- /client/static/images/qqui1/shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/shadow.png -------------------------------------------------------------------------------- /client/static/images/qqui1/slider.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/slider.png -------------------------------------------------------------------------------- /client/static/images/qqui1/sort_asc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/sort_asc.png -------------------------------------------------------------------------------- /client/static/images/qqui1/sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/sprite.png -------------------------------------------------------------------------------- /client/static/images/qqui1/star-off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/star-off.png -------------------------------------------------------------------------------- /client/static/images/qqui1/star-on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/star-on.png -------------------------------------------------------------------------------- /client/static/images/qqui1/toolbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/toolbar.png -------------------------------------------------------------------------------- /client/static/images/qqui1/bar-sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/bar-sprite.png -------------------------------------------------------------------------------- /client/static/images/qqui1/bgnoise_lg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/bgnoise_lg.png -------------------------------------------------------------------------------- /client/static/images/qqui1/cancel-off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/cancel-off.png -------------------------------------------------------------------------------- /client/static/images/qqui1/cancel-on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/cancel-on.png -------------------------------------------------------------------------------- /client/static/images/qqui1/closelabel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/closelabel.png -------------------------------------------------------------------------------- /client/static/images/qqui1/custom_hex.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/custom_hex.png -------------------------------------------------------------------------------- /client/static/images/qqui1/face-a-off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/face-a-off.png -------------------------------------------------------------------------------- /client/static/images/qqui1/face-b-off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/face-b-off.png -------------------------------------------------------------------------------- /client/static/images/qqui1/face-c-off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/face-c-off.png -------------------------------------------------------------------------------- /client/static/images/qqui1/face-d-off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/face-d-off.png -------------------------------------------------------------------------------- /client/static/images/qqui1/input-boxt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/input-boxt.png -------------------------------------------------------------------------------- /client/static/images/qqui1/list-icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/list-icons.png -------------------------------------------------------------------------------- /client/static/images/qqui1/medal-off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/medal-off.png -------------------------------------------------------------------------------- /client/static/images/qqui1/search-box.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/search-box.png -------------------------------------------------------------------------------- /client/static/images/qqui1/sort_both.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/sort_both.png -------------------------------------------------------------------------------- /client/static/images/qqui1/sort_desc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/sort_desc.png -------------------------------------------------------------------------------- /client/static/images/qqui1/star-half.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/star-half.png -------------------------------------------------------------------------------- /client/static/images/qqui1/user-thumb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/user-thumb.png -------------------------------------------------------------------------------- /install/make_app.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | mkdir /var/log/sql-mvc/ -p 3 | cd ../server/compiler/ 4 | mkdir ./output/ -p 5 | bash make_all.sh 6 | -------------------------------------------------------------------------------- /client/static/images/qqui1/action-sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/action-sprite.png -------------------------------------------------------------------------------- /client/static/images/qqui1/addressbook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/addressbook.png -------------------------------------------------------------------------------- /client/static/images/qqui1/alert-lines.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/alert-lines.png -------------------------------------------------------------------------------- /client/static/images/qqui1/arrows-ffffff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/arrows-ffffff.png -------------------------------------------------------------------------------- /client/static/images/qqui1/back_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/back_disabled.png -------------------------------------------------------------------------------- /client/static/images/qqui1/back_enabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/back_enabled.png -------------------------------------------------------------------------------- /client/static/images/qqui1/cancel-on-big.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/cancel-on-big.png -------------------------------------------------------------------------------- /client/static/images/qqui1/chosen-sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/chosen-sprite.png -------------------------------------------------------------------------------- /client/static/images/qqui1/classy_fabric.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/classy_fabric.png -------------------------------------------------------------------------------- /client/static/images/qqui1/custom_hsb_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/custom_hsb_b.png -------------------------------------------------------------------------------- /client/static/images/qqui1/custom_hsb_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/custom_hsb_h.png -------------------------------------------------------------------------------- /client/static/images/qqui1/custom_hsb_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/custom_hsb_s.png -------------------------------------------------------------------------------- /client/static/images/qqui1/custom_rgb_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/custom_rgb_b.png -------------------------------------------------------------------------------- /client/static/images/qqui1/custom_rgb_g.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/custom_rgb_g.png -------------------------------------------------------------------------------- /client/static/images/qqui1/custom_rgb_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/custom_rgb_r.png -------------------------------------------------------------------------------- /client/static/images/qqui1/custom_submit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/custom_submit.png -------------------------------------------------------------------------------- /client/static/images/qqui1/dark-pattern.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/dark-pattern.jpg -------------------------------------------------------------------------------- /client/static/images/qqui1/dark_dotted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/dark_dotted.png -------------------------------------------------------------------------------- /client/static/images/qqui1/dark_matter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/dark_matter.png -------------------------------------------------------------------------------- /client/static/images/qqui1/element-back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/element-back.png -------------------------------------------------------------------------------- /client/static/images/qqui1/fabric_plaid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/fabric_plaid.png -------------------------------------------------------------------------------- /client/static/images/qqui1/handle-sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/handle-sprite.png -------------------------------------------------------------------------------- /client/static/images/qqui1/icons-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/icons-black.png -------------------------------------------------------------------------------- /client/static/images/qqui1/icons-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/icons-small.png -------------------------------------------------------------------------------- /client/static/images/qqui1/notify-icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/notify-icons.png -------------------------------------------------------------------------------- /client/static/images/qqui1/p-action-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/p-action-icon.png -------------------------------------------------------------------------------- /client/static/images/qqui1/pattern-cross.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/pattern-cross.png -------------------------------------------------------------------------------- /client/static/images/qqui1/pineapplecut.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/pineapplecut.png -------------------------------------------------------------------------------- /client/static/images/qqui1/range-back-l.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/range-back-l.png -------------------------------------------------------------------------------- /client/static/images/qqui1/slider-handle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/slider-handle.png -------------------------------------------------------------------------------- /client/static/images/qqui1/slider_center.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/slider_center.png -------------------------------------------------------------------------------- /client/static/images/qqui1/slider_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/slider_left.png -------------------------------------------------------------------------------- /client/static/images/qqui1/slider_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/slider_right.png -------------------------------------------------------------------------------- /client/static/images/qqui1/star-half-big.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/star-half-big.png -------------------------------------------------------------------------------- /client/static/images/qqui1/star-off-big.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/star-off-big.png -------------------------------------------------------------------------------- /client/static/images/qqui1/star-on-big.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/star-on-big.png -------------------------------------------------------------------------------- /client/static/images/qqui1/toggle-sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/toggle-sprite.png -------------------------------------------------------------------------------- /client/static/images/qqui1/user-thumb1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/user-thumb1.png -------------------------------------------------------------------------------- /client/static/others/qqui1/CSSTree/node.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/others/qqui1/CSSTree/node.png -------------------------------------------------------------------------------- /client/static/others/qqui1/CSSTree/vline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/others/qqui1/CSSTree/vline.png -------------------------------------------------------------------------------- /client/static/others/qqui1/emoji/emoji.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/others/qqui1/emoji/emoji.png -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | // Initial entry point. Decides which directory of code to load 2 | 3 | // Load core 4 | module.exports = require('./lib/sql-mvc.js'); -------------------------------------------------------------------------------- /Quale/Standard/Home/Guest/MainMenu/05_Documentation/20_Tutorials.quicc: -------------------------------------------------------------------------------- 1 | 2 | 3 | <#include(type="md" file="./doc/Tutorials.md") #> 4 | 5 | 6 | -------------------------------------------------------------------------------- /Quale/Standard/Home/Guest/MainMenu/05_Documentation/30_Getting_Started.quicc: -------------------------------------------------------------------------------- 1 | <#include(type="md" file="./doc/Getting_Started.md") #> 2 | 3 | 4 | -------------------------------------------------------------------------------- /client/static/images/qqui1/ChevronOverlay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/ChevronOverlay.png -------------------------------------------------------------------------------- /client/static/images/qqui1/bg-input-focus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/bg-input-focus.png -------------------------------------------------------------------------------- /client/static/images/qqui1/cancel-off-big.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/cancel-off-big.png -------------------------------------------------------------------------------- /client/static/images/qqui1/colorpicker_hex.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/colorpicker_hex.png -------------------------------------------------------------------------------- /client/static/images/qqui1/forward_enabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/forward_enabled.png -------------------------------------------------------------------------------- /client/static/images/qqui1/search-text-box.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/search-text-box.png -------------------------------------------------------------------------------- /client/static/images/qqui1/slider-ui-back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/slider-ui-back.png -------------------------------------------------------------------------------- /client/static/images/qqui1/subtle_zebra_3d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/subtle_zebra_3d.png -------------------------------------------------------------------------------- /client/static/images/Green_strawberry Icon.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/Green_strawberry Icon.jpeg -------------------------------------------------------------------------------- /client/static/images/qqui1/checkered_pattern.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/checkered_pattern.png -------------------------------------------------------------------------------- /client/static/images/qqui1/colorpicker_hsb_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/colorpicker_hsb_b.png -------------------------------------------------------------------------------- /client/static/images/qqui1/colorpicker_hsb_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/colorpicker_hsb_h.png -------------------------------------------------------------------------------- /client/static/images/qqui1/colorpicker_hsb_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/colorpicker_hsb_s.png -------------------------------------------------------------------------------- /client/static/images/qqui1/colorpicker_rgb_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/colorpicker_rgb_b.png -------------------------------------------------------------------------------- /client/static/images/qqui1/colorpicker_rgb_g.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/colorpicker_rgb_g.png -------------------------------------------------------------------------------- /client/static/images/qqui1/colorpicker_rgb_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/colorpicker_rgb_r.png -------------------------------------------------------------------------------- /client/static/images/qqui1/colorpicker_submit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/colorpicker_submit.png -------------------------------------------------------------------------------- /client/static/images/qqui1/custom_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/custom_background.png -------------------------------------------------------------------------------- /client/static/images/qqui1/forward_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/forward_disabled.png -------------------------------------------------------------------------------- /client/static/images/qqui1/right-panel-back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/right-panel-back.png -------------------------------------------------------------------------------- /client/static/images/qqui1/sort_asc_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/sort_asc_disabled.png -------------------------------------------------------------------------------- /client/static/images/qqui1/sort_desc_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/sort_desc_disabled.png -------------------------------------------------------------------------------- /client/static/others/qqui1/CSSTree/lastnode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/others/qqui1/CSSTree/lastnode.png -------------------------------------------------------------------------------- /client/templates/chat/message.html: -------------------------------------------------------------------------------- 1 |

2 | At {{time}} Sent: 3 | {{message}} 4 |

5 | -------------------------------------------------------------------------------- /install/make_udf.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | cd ../server/udf 3 | make clean 4 | make 5 | #sudo cp ../server/udf/q_UDFLibC /opt/firebird/UDF/q_UDFLibC.so 6 | -------------------------------------------------------------------------------- /Quale/Standard/Home/Operator/Inbox.quicc: -------------------------------------------------------------------------------- 1 | <#divcontainer(type:Divout , DivoutName:content)#> 2 |
3 | 
4 | 
5 | #TO Follow... soon
6 | 
7 | 


--------------------------------------------------------------------------------
/client/static/images/Green_strawberryIconAlpha.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/Green_strawberryIconAlpha.ico


--------------------------------------------------------------------------------
/client/static/images/Green_strawberryIconAlpha.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/Green_strawberryIconAlpha.jpeg


--------------------------------------------------------------------------------
/client/static/images/Green_strawberryIconAlpha.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/Green_strawberryIconAlpha.png


--------------------------------------------------------------------------------
/client/static/images/qqui1/colorpicker_overlay.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/colorpicker_overlay.png


--------------------------------------------------------------------------------
/client/static/images/qqui1/notifiication-sprite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/notifiication-sprite.png


--------------------------------------------------------------------------------
/Quale/Standard/Home/Operator/Preferences.quicc:
--------------------------------------------------------------------------------
1 | <#divcontainer(type:Divout , DivoutName:content)#>
2 | 
3 | 
4 | 
5 | #TO Follow... soon
6 | 
7 | 


--------------------------------------------------------------------------------
/client/static/images/qqui1/colorpicker_background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/colorpicker_background.png


--------------------------------------------------------------------------------
/client/static/images/qqui1/zx-main-icon-sprite-V100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/images/qqui1/zx-main-icon-sprite-V100.png


--------------------------------------------------------------------------------
/install/clean.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | rm -r ../client/templates/Home
3 | rm -r  ../server/compiler/output
4 | rm -r  /var/log/sql-mvc
5 | cd ../server/udf
6 | make clean
7 | 


--------------------------------------------------------------------------------
/Quale/Standard/Home/Layout/TopBar.quicc:
--------------------------------------------------------------------------------
1 | 
5 | 


--------------------------------------------------------------------------------
/Quale/Standard/Home/Guest/MainMenu/02_Demos/09_enter_todo_mvc.quicc:
--------------------------------------------------------------------------------
1 | 
2 | <#view
3 | dropinmenu (title:"More Todo")
4 | 
5 | #>
6 | 
7 | <#include(file="/Home/Guest/Index") #>
8 | 


--------------------------------------------------------------------------------
/client/static/others/qqui1/CSSTree/README:
--------------------------------------------------------------------------------
1 | Following a tutorial [1] to create a tree in HTML using pure CSS.
2 | 
3 | [1] http://odyniec.net/articles/turning-lists-into-trees/
4 | 


--------------------------------------------------------------------------------
/Quale/Standard/Home/Layout/TopBarGuest.quicc:
--------------------------------------------------------------------------------
1 | 
5 | 


--------------------------------------------------------------------------------
/client/static/others/qqui1/DataTables/media/images/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/others/qqui1/DataTables/media/images/favicon.ico


--------------------------------------------------------------------------------
/client/static/others/qqui1/DataTables/media/images/sort_asc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/others/qqui1/DataTables/media/images/sort_asc.png


--------------------------------------------------------------------------------
/client/static/others/qqui1/DataTables/media/images/sort_both.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/others/qqui1/DataTables/media/images/sort_both.png


--------------------------------------------------------------------------------
/client/static/others/qqui1/DataTables/media/images/sort_desc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/others/qqui1/DataTables/media/images/sort_desc.png


--------------------------------------------------------------------------------
/client/static/others/qqui1/DataTables/media/images/Sorting icons.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/others/qqui1/DataTables/media/images/Sorting icons.psd


--------------------------------------------------------------------------------
/client/static/others/qqui1/DataTables/media/images/back_disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/others/qqui1/DataTables/media/images/back_disabled.png


--------------------------------------------------------------------------------
/client/static/others/qqui1/DataTables/media/images/back_enabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/others/qqui1/DataTables/media/images/back_enabled.png


--------------------------------------------------------------------------------
/client/static/others/qqui1/jquery/images/ui-icons_222222_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/others/qqui1/jquery/images/ui-icons_222222_256x240.png


--------------------------------------------------------------------------------
/client/static/others/qqui1/jquery/images/ui-icons_2e83ff_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/others/qqui1/jquery/images/ui-icons_2e83ff_256x240.png


--------------------------------------------------------------------------------
/client/static/others/qqui1/jquery/images/ui-icons_454545_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/others/qqui1/jquery/images/ui-icons_454545_256x240.png


--------------------------------------------------------------------------------
/client/static/others/qqui1/jquery/images/ui-icons_888888_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/others/qqui1/jquery/images/ui-icons_888888_256x240.png


--------------------------------------------------------------------------------
/client/static/others/qqui1/jquery/images/ui-icons_cd0a0a_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/others/qqui1/jquery/images/ui-icons_cd0a0a_256x240.png


--------------------------------------------------------------------------------
/client/static/others/qqui1/uniform/themes/default/images/bg-input.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/others/qqui1/uniform/themes/default/images/bg-input.png


--------------------------------------------------------------------------------
/client/static/others/qqui1/uniform/themes/default/images/sprite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/others/qqui1/uniform/themes/default/images/sprite.png


--------------------------------------------------------------------------------
/client/static/others/qqui1/DataTables/media/images/forward_disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/others/qqui1/DataTables/media/images/forward_disabled.png


--------------------------------------------------------------------------------
/client/static/others/qqui1/DataTables/media/images/forward_enabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/others/qqui1/DataTables/media/images/forward_enabled.png


--------------------------------------------------------------------------------
/client/static/others/qqui1/jquery/images/ui-bg_flat_0_aaaaaa_40x100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/others/qqui1/jquery/images/ui-bg_flat_0_aaaaaa_40x100.png


--------------------------------------------------------------------------------
/Quale/Standard/Home/LayoutClose.quicc:
--------------------------------------------------------------------------------
1 | 
2 | 
3 | 
4 | 
5 | 
6 | 
7 | 


--------------------------------------------------------------------------------
/client/static/others/qqui1/DataTables/media/images/back_enabled_hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/others/qqui1/DataTables/media/images/back_enabled_hover.png


--------------------------------------------------------------------------------
/client/static/others/qqui1/DataTables/media/images/sort_asc_disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/others/qqui1/DataTables/media/images/sort_asc_disabled.png


--------------------------------------------------------------------------------
/client/static/others/qqui1/DataTables/media/images/sort_desc_disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/others/qqui1/DataTables/media/images/sort_desc_disabled.png


--------------------------------------------------------------------------------
/client/static/others/qqui1/jquery/images/ui-bg_flat_75_ffffff_40x100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/others/qqui1/jquery/images/ui-bg_flat_75_ffffff_40x100.png


--------------------------------------------------------------------------------
/client/static/others/qqui1/jquery/images/ui-bg_glass_55_fbf9ee_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/others/qqui1/jquery/images/ui-bg_glass_55_fbf9ee_1x400.png


--------------------------------------------------------------------------------
/client/static/others/qqui1/jquery/images/ui-bg_glass_65_ffffff_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/others/qqui1/jquery/images/ui-bg_glass_65_ffffff_1x400.png


--------------------------------------------------------------------------------
/client/static/others/qqui1/jquery/images/ui-bg_glass_75_dadada_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/others/qqui1/jquery/images/ui-bg_glass_75_dadada_1x400.png


--------------------------------------------------------------------------------
/client/static/others/qqui1/jquery/images/ui-bg_glass_75_e6e6e6_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/others/qqui1/jquery/images/ui-bg_glass_75_e6e6e6_1x400.png


--------------------------------------------------------------------------------
/client/static/others/qqui1/jquery/images/ui-bg_glass_95_fef1ec_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/others/qqui1/jquery/images/ui-bg_glass_95_fef1ec_1x400.png


--------------------------------------------------------------------------------
/client/static/others/qqui1/DataTables/media/images/forward_enabled_hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/others/qqui1/DataTables/media/images/forward_enabled_hover.png


--------------------------------------------------------------------------------
/client/static/others/qqui1/uniform/themes/default/images/bg-input-focus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/others/qqui1/uniform/themes/default/images/bg-input-focus.png


--------------------------------------------------------------------------------
/install/debug_web.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | #not working yet
3 | cd ..
4 | cd -P .
5 | pwd
6 | #sudo socat TCP-LISTEN:3004,reuseaddr,fork,su=nobody TCP:127.0.0.1:3002 &
7 | node-debug -p 3012 app.js -p 3000
8 | 
9 | 


--------------------------------------------------------------------------------
/Quale/Standard/Home/SysAdmin/Index.quicc:
--------------------------------------------------------------------------------
 1 | <#
 2 | 
 3 | notify(style=Heading) 
 4 | SysAdmin
 5 | 
 6 |                                                                          
 7 | #>
 8 | 
 9 | 
10 | 
11 | 
12 | 


--------------------------------------------------------------------------------
/client/static/others/qqui1/jquery/images/ui-bg_highlight-soft_75_cccccc_1x100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/quale-quest/sql-mvc/HEAD/client/static/others/qqui1/jquery/images/ui-bg_highlight-soft_75_cccccc_1x100.png


--------------------------------------------------------------------------------
/install/quick-isql.sql:
--------------------------------------------------------------------------------
1 | show tables;
2 | select PK,TStamp,octet_length(coalesce(code,'1')),trim(FILE_NAME) from Z$SP; 
3 | SELECT info,RES FROM Z$RUN ('10:18:48.968','',1000,0,'','','u08USER8002p041257w00x00');
4 |   
5 |   
6 | 


--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
 1 | .DS_Store
 2 | node_modules
 3 | dump.rdb
 4 | npm-debug.log
 5 | tmp
 6 | Deprecate
 7 | 
 8 | /database
 9 | client/templates/Home
10 | server/compiler/output
11 | 
12 | /output
13 | syntaxhighlighter_3.0.83
14 | /package-lock.json
15 | 


--------------------------------------------------------------------------------
/client/templates/Widgets/RadioFieldEdit.html:
--------------------------------------------------------------------------------
1 | {{ItemTxt}}


--------------------------------------------------------------------------------
/client/templates/Widgets/RadioFieldEditUnChecked.html:
--------------------------------------------------------------------------------
1 | {{ItemTxt}}


--------------------------------------------------------------------------------
/server/compiler/update_ref.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | #  
3 | #Copies the output as a reference for future comparisons
4 | 
5 | cp output/Home/Guest/Index.sql ../Index.sql
6 | cp output/Home/User/Index.sql ../UserIndex.sql
7 | cp output/Home/Guest/Dashboard/Dashboard.sql ../Dashboard.sql
8 | 
9 | 


--------------------------------------------------------------------------------
/client/templates/Widgets/PickFieldEditUnChecked.html:
--------------------------------------------------------------------------------
1 | 


--------------------------------------------------------------------------------
/Quale/Standard/Home/Operator/Switch.quicc:
--------------------------------------------------------------------------------
 1 | <#divcontainer(type:Divout , DivoutName:logout)#>
 2 | 
 3 | <#script()
 4 | 
 5 | logout()
 6 | 
 7 | notify(style=Heading) 
 8 | Switching user
 9 | 
10 |                                                                          
11 | #>
12 | 
13 | 
14 | 
15 | 
16 | 


--------------------------------------------------------------------------------
/Quale/Standard/Home/SelfServe/Switch.quicc:
--------------------------------------------------------------------------------
 1 | <#divcontainer(type:Divout , DivoutName:logout)#>
 2 | 
 3 | <#script()
 4 | 
 5 | logout()
 6 | 
 7 | notify(style=Heading) 
 8 | Switching user
 9 | 
10 |                                                                          
11 | #>
12 | 
13 | 
14 | 
15 | 
16 | 


--------------------------------------------------------------------------------
/client/templates/Widgets/PickFieldEdit.html:
--------------------------------------------------------------------------------
1 | 
3 | 
4 | 
5 | 


--------------------------------------------------------------------------------
/server/compiler/monitor.sh:
--------------------------------------------------------------------------------
 1 | #!/bin/bash
 2 | loops on check.sh
 3 | #
 4 | 
 5 | # The interval in seconds between each check on monitored files.
 6 | INTERVAL_SECONDS=1
 7 | 
 8 | DIR="$( cd "$( dirname "$0" )" && pwd)"
 9 | pushd ${DIR}
10 | 
11 | while [[ true ]] ; do
12 |   bash ./check.sh
13 |   sleep ${INTERVAL_SECONDS}
14 | done
15 | 
16 | #eof


--------------------------------------------------------------------------------
/doc/Compiler/Debugging.md:
--------------------------------------------------------------------------------
 1 | #Debugging
 2 | 
 3 | Some notes on how the compiler is structured and how to expand
 4 | 
 5 | 
 6 | 
 7 | ##Directory
 8 | 
 9 | 
10 | ##Plugins
11 | 
12 | ##Multi pass
13 | 
14 | ##Compiler debugging
15 | 
16 | output with @nnn such as @413 refers to where a value is set. Grep for the @413 to find the location.
17 | 
18 | end


--------------------------------------------------------------------------------
/install/tests/database/fakerun.sql:
--------------------------------------------------------------------------------
 1 | 
 2 | 
 3 | connect '127.0.0.1:guest.fdb' user 'SYSDBA' password 'pickfb25';
 4 | 
 5 | show tables;
 6 | 
 7 | select PK,TStamp,octet_length(coalesce(code,'1')),trim(FILE_NAME) from FIELD_SQL;
 8 | 
 9 | 
10 |   
11 | SELECT info,RES FROM Z_RUN ('10:18:48.968','',1000,0,'','','u08USER8002p041257w00x00');
12 |   
13 |   
14 | 


--------------------------------------------------------------------------------
/server/database/db_fb25.js:
--------------------------------------------------------------------------------
 1 | "use strict";
 2 | //will / should be split into one per database
 3 | 
 4 | var db = require("../../server/database/DatabasePool");
 5 | var fs = require('fs');
 6 | //var Sync = require('sync');
 7 | var deasync = require('deasync');
 8 | var deasync_const=5; 
 9 | 
10 | var connection = {};
11 | var deepcopy = require('deepcopy');
12 | 
13 | 	 
14 | 
15 | 


--------------------------------------------------------------------------------
/server/database/db_mssql12.js:
--------------------------------------------------------------------------------
 1 | "use strict";
 2 | //will / should be split into one per database
 3 | 
 4 | var db = require("../../server/database/DatabasePool");
 5 | var fs = require('fs');
 6 | //var Sync = require('sync');
 7 | var deasync = require('deasync');
 8 | var deasync_const=5; 
 9 | 
10 | var connection = {};
11 | var deepcopy = require('deepcopy');
12 | 
13 | 	 
14 | 
15 | 


--------------------------------------------------------------------------------
/server/database/db_mysql57.js:
--------------------------------------------------------------------------------
 1 | "use strict";
 2 | //will / should be split into one per database
 3 | 
 4 | var db = require("../../server/database/DatabasePool");
 5 | var fs = require('fs');
 6 | //var Sync = require('sync');
 7 | var deasync = require('deasync');
 8 | var deasync_const=5; 
 9 | 
10 | var connection = {};
11 | var deepcopy = require('deepcopy');
12 | 
13 | 	 
14 | 
15 | 


--------------------------------------------------------------------------------
/server/database/db_nuosql32.js:
--------------------------------------------------------------------------------
 1 | "use strict";
 2 | //will / should be split into one per database
 3 | 
 4 | var db = require("../../server/database/DatabasePool");
 5 | var fs = require('fs');
 6 | //var Sync = require('sync');
 7 | var deasync = require('deasync');
 8 | var deasync_const=5; 
 9 | 
10 | var connection = {};
11 | var deepcopy = require('deepcopy');
12 | 
13 | 	 
14 | 
15 | 


--------------------------------------------------------------------------------
/server/database/db_odsql11.js:
--------------------------------------------------------------------------------
 1 | "use strict";
 2 | //will / should be split into one per database
 3 | 
 4 | var db = require("../../server/database/DatabasePool");
 5 | var fs = require('fs');
 6 | //var Sync = require('sync');
 7 | var deasync = require('deasync');
 8 | var deasync_const=5; 
 9 | 
10 | var connection = {};
11 | var deepcopy = require('deepcopy');
12 | 
13 | 	 
14 | 
15 | 


--------------------------------------------------------------------------------
/server/middleware/example.js:
--------------------------------------------------------------------------------
 1 | "use strict";
 2 | // Example request middleware
 3 | 
 4 | // Only let a request through if the session has been authenticated
 5 | exports.authenticated = function () {
 6 | 	return function (req, res, next) {
 7 | 		if (req.session && (req.session.userId !== null)) {
 8 | 			return next();
 9 | 		} else {
10 | 			return res(false);
11 | 		}
12 | 	};
13 | };
14 | 


--------------------------------------------------------------------------------
/Quale/Standard/Home/SelfServe/ForgotPassword_step3.quicc:
--------------------------------------------------------------------------------
 1 | <#divcontainer(type:Plain , DivoutName:maincontainer)#>
 2 | <#view
 3 | master(user_table_name)
 4 | notify(style=Heading) Your Login Details Has been Emailed.
 5 | 
 6 | button(glymph:"bended-arrow-right-b" from=user_table_name where="INVITED_BY=session.id" form=Switch title:"Login now")  
 7 | 
 8 | #>
 9 | 
10 | 
11 | 
12 | 
13 | 
14 | 
15 | 
16 | 


--------------------------------------------------------------------------------
/server/compiler/make_all.sh:
--------------------------------------------------------------------------------
 1 | #!/bin/bash
 2 |  
 3 | 
 4 | # The absolute path of the directory containing this script.
 5 | DIR="$( cd "$( dirname "$0" )" && pwd -P)"
 6 | # Where is the top level project directory relative to this script?
 7 | 
 8 | PROJECT_DIR="${DIR}/../.."
 9 | 
10 | #signal rebuild to restart and call the compiler's monitor
11 | rm  $PROJECT_DIR/built_complete  2> /dev/null
12 | bash check.sh
13 | 


--------------------------------------------------------------------------------
/Quale/Standard/Home/Guest/Todo/PerSessionEdit.quicc:
--------------------------------------------------------------------------------
 1 | <#divcontainer(type:Popup , DivoutName:basicmodaldialog)#>
 2 | <#view
 3 | master(TODO_MVC)
 4 | 
 5 | form()
 6 | 	Select  --:{Title:"Edit record",from:"TODO_MVC"}
 7 | 	STATUS, --:{Action=Edit}
 8 | 	NAME,   --:{Action=Edit}
 9 | 	OWNER,   --:{Type:"Hide"}
10 | 	REF	    --:{Type:"Hide"}	
11 | 	From TODO_MVC 
12 |     where (ref=master.ref)
13 | 
14 | #>
15 | 
16 | 
17 | 


--------------------------------------------------------------------------------
/doc/Tutorial_Config_Options.md:
--------------------------------------------------------------------------------
 1 | # Config Options
 2 | 
 3 | **"login_first":true** : this instruct the home page to show a login page first,
 4 | if this is off it will login automatically as guest.
 5 | 
 6 | 				
 7 | **"dont_reload":true** : This instructs the app to go back to the first page (login) when F5 is pressed,
 8 | without this the app will attempt to reload the app to the current view of the user.
 9 | 
10 | 
11 | 


--------------------------------------------------------------------------------
/Quale/Standard/Home/SelfServe/Index.quicc:
--------------------------------------------------------------------------------
1 | <#divcontainer(type:Plain , DivoutName:maincontainer)#>
2 | <#master(user_table_name)#>
3 | 
4 | <#button(glymph:"bended-arrow-right-b" from=user_table_name where="INVITED_BY=session.id" form=RegisterNewUser title:"RegisterNewUser")  #>
5 | <#button(glymph:"bended-arrow-right-b" from=user_table_name where="INVITED_BY=session.id" form=ForgotPassword title:"ForgotPassword")  #>
6 | 
7 | 
8 | 
9 | 


--------------------------------------------------------------------------------
/server/database/db_common.js:
--------------------------------------------------------------------------------
 1 | "use strict";
 2 | //This is the common driver code file 
 3 | //  For code that is better as a single block with limited dialect switches and variables
 4 | 
 5 | 
 6 | var db = require("../../server/database/DatabasePool");
 7 | var fs = require('fs');
 8 | //var Sync = require('sync');
 9 | var deasync = require('deasync');
10 | var deasync_const=5; 
11 | 
12 | var connection = {};
13 | var deepcopy = require('deepcopy');
14 | 
15 | 	 
16 | 
17 | 


--------------------------------------------------------------------------------
/server/database/z_Insertref.sql:
--------------------------------------------------------------------------------
 1 | CREATE TABLE Z$INSERTREF
 2 | (
 3 |   NON_MATCH VARCHAR(20),
 4 |   INSERT_REF VARCHAR(20)
 5 | );
 6 | GRANT DELETE, INSERT, REFERENCES, SELECT, UPDATE
 7 |  ON Z$INSERTREF TO  SYSDBA WITH GRANT OPTION;
 8 |  
 9 | INSERT INTO Z$INSERTREF (NON_MATCH, INSERT_REF) VALUES ('NON_MATCH_1', '1');
10 | INSERT INTO Z$INSERTREF (NON_MATCH, INSERT_REF) VALUES ('NON_MATCH_2', '2');
11 | INSERT INTO Z$INSERTREF (NON_MATCH, INSERT_REF) VALUES ('NON_MATCH_3', '3');
12 | 


--------------------------------------------------------------------------------
/Quale/Standard/Home/Guest/Todo/PerSessionToDo.quicc:
--------------------------------------------------------------------------------
 1 | <#divcontainer(type:Divout , DivoutName:detaildiv)#>
 2 | 

3 | <#view 4 | 5 | 6 | 7 | master(TODO_MVC) 8 | 9 | 10 | table(pagination:20) 11 | Select --:{Title:"Edit records",from:"TODO_MVC",tablestyle:"DT"} 12 | REF , --:{Type:"Hide"} 13 | STATUS, --:{} 14 | NAME, --:{as:popup,form:"Todo/PerSessionEdit"} 15 | OWNER --:{Type:"Hide"} 16 | From TODO_MVC 17 | where (owner=master.owner) 18 | 19 | dialect() 20 | #> 21 | -------------------------------------------------------------------------------- /Quale/Standard/Home/Guest/Views/PerSessionToDo.quicc: -------------------------------------------------------------------------------- 1 | 2 | <#view 3 | master(TODO_MVC) 4 | 5 | html

6 | print Other To-do items in the same session(master.owner) 7 | html

8 | 9 | table() 10 | Select --:{Title:"Make new records",from:"TODO_MVC",tablestyle:"DT"} 11 | STATUS, --:{} 12 | NAME, --:{} 13 | OWNER, --:{Type:"Hide"} 14 | REF --:{} 15 | From TODO_MVC 16 | where (owner=master.owner) 17 | 18 | use(todo.source_files) 19 | #> 20 | 21 | -------------------------------------------------------------------------------- /install/quick-isql.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | source /etc/firebird/2.5/SYSDBA.password 3 | export ISC_USER=$ISC_USER 4 | export ISC_PASSWORD=$ISC_PASSWORD 5 | var=`node -pe "JSON.parse(require('fs').readFileSync('../Quale/Config/config.json').toString()).db.database"` 6 | server=`node -pe "JSON.parse(require('fs').readFileSync('../Quale/Config/config.json').toString()).db.server"` 7 | 8 | 9 | echo db: $var 10 | echo press crtl-d to exit, or help; 11 | isql-fb "$server:$var" -i quick-isql.sql 12 | 13 | -------------------------------------------------------------------------------- /doc/index.md: -------------------------------------------------------------------------------- 1 | # SQL-MVC Documentation Index: 2 | 3 | ##Introduction at : 4 | [Github - Install.md](https://github.com/quale-quest/sql-mvc/blob/master/README.md) 5 | 6 | ##Tutorials at : 7 | [Github - Install.md](https://github.com/quale-quest/sql-mvc/blob/master/doc/Tutorials.md) 8 | 9 | ##Install instructions at : 10 | [Github - Install.md](https://github.com/quale-quest/sql-mvc/blob/master/Install.md) 11 | 12 | ##Programmers Manual at : 13 | [Github - wiki](https://github.com/quale-quest/sql-mvc/wiki) -------------------------------------------------------------------------------- /Quale/Standard/Home/Guest/Dashboard/Dashboard.quicc: -------------------------------------------------------------------------------- 1 | <# 2 | Container(style=Center) 3 | notify(style=Heading) Info 4 | 5 | print() you were here last at here.this_page_info 6 | script() set here.this_page_info=cast('now' as timestamp); 7 | html()
8 | 9 | print() ($select count(*) from MAIL where FROM_USER=session.id and SUBJECT='login log' $) actions from you 10 | and ($select count(*) from MAIL where SUBJECT='login log' $) actions total (in this session). 11 | 12 | CloseContainer 13 | #> 14 | -------------------------------------------------------------------------------- /doc/Tutorial_Facebook_login.md: -------------------------------------------------------------------------------- 1 | # Facebook login 2 | 3 | To enable Facebook login 4 | 5 | Step 1) From your Facebook developer account get a facebook AppID, 6 | this AppID must be registered to the domain that the app will be hosted in. 7 | 8 | Step 2) In app.html, change the value of myFaceBookAppID from '' to the AppID 9 | 10 | step 3) In config.quicc change "login_first":false to true to disable automatic guest login. 11 | 12 | Optionally) Set auto_login_facebook_on_return to true; 13 | 14 | Optionally) Tweak the login div. 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /Quale/Standard/Home/Guest/Models/TodoModel.quicc: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | <#model 5 | 6 | CREATE TABLE TODO_MVC --:{as:"Table"} 7 | ( 8 | REF VARCHAR(40), --:{as:pk} 9 | NAME VARCHAR(100), --:{as:text,size:40,title:"todo"} 10 | PROGRESS VARCHAR(100), --:{as:text,size:40,title:"Progress"} 11 | OWNER VARCHAR(40), --:{as:hidden} 12 | STATUS VARCHAR(10) default '' --:{as:ticked} 13 | ); 14 | 15 | CREATE INDEX IDX_TODO_MVC1 ON TODO_MVC (REF); 16 | CREATE INDEX IDX_TODO_MVC2 ON TODO_MVC (OWNER,STATUS); 17 | 18 | #> 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /bin/sql-mvc.js: -------------------------------------------------------------------------------- 1 | 2 | var program = require('commander'); 3 | 4 | program 5 | .usage('new |patch|forever path') 6 | //.version(quicc.version) 7 | .option('-m, --minimal', 'minimal install (no demo)') 8 | .option('-c, --coffee', 'use CoffeeScript') 9 | .option('-j, --jade', 'use Jade for Views') 10 | .option('-s, --stylus', 'use Stylus for CSS') 11 | .option('-l, --less', 'use Less for CSS') 12 | .option('-r, --repl', 'include Console Server / REPL') 13 | .parse(process.argv); 14 | 15 | require(__dirname + '/../lib/cli').process(program); 16 | -------------------------------------------------------------------------------- /bin/clean.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | #todo we need a naming convention to remove all files of plugins not only the SignaturePad 4 | ls -la output 5 | ls -la client/views 6 | ls -la client/static/others/signature_pad 7 | ls -la client/code/app 8 | ls -la client/templates/Widgets 9 | 10 | 11 | rm events.log 12 | rm -R output 13 | rm -R client/static/others/signature_pad 14 | rm -R client/code/app/signature_pad_plugin.js 15 | rm client/views/app.html 16 | rm client/code/app/plugins.js 17 | rm client/templates/Widgets/SignaturePad.html 18 | rm client/templates/Widgets/signature_pad.html 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /install/tests/tests.md: -------------------------------------------------------------------------------- 1 | #qq tests 2 | 3 | #methodlogy 4 | This test suite is intended to test the functionality of the qq compiler and server. 5 | 6 | In genertal mode it sets up a minimalist and controlled environment to produce consistent tests. 7 | In site mode it tests basic functionalities in your site. 8 | 9 | #Compiler - Basic tests 10 | 11 | *basic template 12 | *inheritance 13 | *complex template 14 | 15 | 16 | #Server 17 | database config and access 18 | udf's - Q_F2J 19 | node 20 | 21 | #Site mode 22 | configuration 23 | database availability 24 | databse support tables, generators ,procedures and triggers. 25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/Tutorials.md: -------------------------------------------------------------------------------- 1 | # SQL-MVC tutorials, 2 | 3 | 4 | 5 | ## Basic Application 6 | * Basic Tutorial : [Github - Tutorial_basic_1](https://github.com/quale-quest/sql-mvc/blob/master/doc/Tutorial_basic_1.md) 7 | * Element reference : [Github - Elements](https://github.com/quale-quest/sql-mvc/blob/master/doc/Elements.md) 8 | 9 | ## Advanced Application 10 | TODO 11 | 12 | ## Basic widgets 13 | TODO 14 | 15 | ## Advanced widgets 16 | 17 | * Making field widgets : [Github - Making field widget](https://github.com/quale-quest/sql-mvc/blob/master/doc/Tutorial_making_field_elements.md) 18 | 19 | ## Basic themes 20 | TODO 21 | 22 | ## Advanced themes 23 | TODO -------------------------------------------------------------------------------- /server/database/z_pkcache.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE FIELD_DETAIL 2 | ( 3 | MASTER INTEGER, 4 | INDX INTEGER, 5 | FIELD_NAME VARCHAR(40), 6 | VALU VARCHAR(1000), 7 | BASERECORD INTEGER, 8 | TARGET VARCHAR(100), 9 | QUERY VARCHAR(100), 10 | BODY VARCHAR(1000), 11 | MASTER_FIELDS VARCHAR(1000), 12 | PK_FIELD_NAME VARCHAR(40), 13 | NEW_VALUE VARCHAR(1000), 14 | OLD_VALUE VARCHAR(1000), 15 | NEW_VALUE_SET INTEGER, 16 | TARGET_VALUES VARCHAR(256) 17 | ); 18 | 19 | CREATE INDEX IDX_FIELD_DETAIL1 ON FIELD_DETAIL (MASTER,INDX); 20 | CREATE INDEX IDX_FIELD_DETAIL2 ON FIELD_DETAIL (MASTER,NEW_VALUE_SET,VALU,QUERY,PK_FIELD_NAME); 21 | 22 | -------------------------------------------------------------------------------- /client/static/others/qqui1/timepicker/jquery-ui-timepicker-addon.css: -------------------------------------------------------------------------------- 1 | .ui-timepicker-div .ui-widget-header { margin-bottom: 8px; } 2 | .ui-timepicker-div dl { text-align: left; } 3 | .ui-timepicker-div dl dt { float: left; clear:left; padding: 0 0 0 5px; } 4 | .ui-timepicker-div dl dd { margin: 0 10px 10px 40%; } 5 | .ui-timepicker-div td { font-size: 90%; } 6 | .ui-tpicker-grid-label { background: none; border: none; margin: 0; padding: 0; } 7 | 8 | .ui-timepicker-rtl{ direction: rtl; } 9 | .ui-timepicker-rtl dl { text-align: right; padding: 0 5px 0 0; } 10 | .ui-timepicker-rtl dl dt{ float: right; clear: right; } 11 | .ui-timepicker-rtl dl dd { margin: 0 40% 10px 10px; } -------------------------------------------------------------------------------- /server/compiler/modules/markdown.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | //var path = require('path'); 4 | //var fs = require('fs'); 5 | //var zx = require('../zx'); 6 | var marked = require('marked'); 7 | //var markdown = require( "markdown" ).markdown; 8 | 9 | marked.setOptions({ 10 | gfm : true, 11 | tables : true, 12 | breaks : true, 13 | pedantic : false, 14 | sanitize : false, 15 | smartLists : true, 16 | smartypants : false 17 | }); 18 | 19 | exports.preprocessor_md = function (zx, str) { 20 | 21 | // console.log( '>>>>>',str,'<<<<<' ); 22 | // str=markdown.toHTML( str ) ; 23 | str = marked(str); 24 | //console.log( '>>>>>',str,'<<<<<' ); 25 | return str; 26 | }; 27 | -------------------------------------------------------------------------------- /Quale/Lib/Models/replicator_model.quicc: -------------------------------------------------------------------------------- 1 | 2 | <#:model() 3 | 4 | CREATE GENERATOR ZR$LOG_ID; 5 | SET GENERATOR ZR$LOG_ID TO 1; 6 | CREATE GENERATOR ZR$LAST_CURRENT_TRANSACTION; 7 | SET GENERATOR ZR$LAST_CURRENT_TRANSACTION TO 0; 8 | CREATE GENERATOR ZR$MIN_CURRENT_TRANSACTION; 9 | SET GENERATOR ZR$MIN_CURRENT_TRANSACTION TO 0; 10 | 11 | 12 | 13 | CREATE TABLE ZR$LOG 14 | ( 15 | TID Bigint, 16 | ID Bigint NOT NULL PRIMARY KEY, 17 | SHARD_ID Varchar(32), 18 | TS Timestamp DEFAULT current_timestamp, 19 | JSON Varchar(8000) 20 | ); 21 | 22 | CREATE INDEX IDX_ZR$LOG ON ZR$LOG (SHARD_ID,TID,ID); 23 | 24 | 25 | #> 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /server/udf/Notes.txt: -------------------------------------------------------------------------------- 1 | #Json Encoder for Firebird 2 | 3 | 4 | 5 | 6 | 7 | #References: 8 | ##FB UDF 9 | http://www.codeproject.com/Articles/43200/Writing-UDFs-for-Firebird-Embedded-SQL-Server 10 | http://ibexpert.net/ibe/index.php?n=Doc.HowToWriteAnInternalUDFFunction 11 | http://www.aolserver.cz/download/UDF_fb_mhash-1.2.01.tgz 12 | 13 | http://code.openhub.net/project?pid=1DUnjYAueHw&prevcid=1&did=rfunc2&cid=ush_TNLKuwc&fp=267556&projSelected=true 14 | www.codeproject.com/KB/database/udf-for-firebird.aspx 15 | 16 | 17 | ##JSON 18 | https://code.google.com/p/json-simple/wiki/EscapingExamples 19 | https://github.com/ATNoG/JSONObject/blob/nativeCpp/StringUtils.hpp -------------------------------------------------------------------------------- /doc/Debugging.md: -------------------------------------------------------------------------------- 1 | #Debugging 2 | 3 | 4 | Debugging the platform and your app is still quite primitive, error messages are often missing or unhelpful. 5 | 6 | 7 | Pressing Ctrl-Q on the web app toggles a debug menu that will be expanded much 8 | 9 | Output Folder contains both top level / last errors and folders with errro per app page 10 | 11 | 12 | 13 | Often it is hard to track the element names used, 14 | 15 | 16 | Make small changes via GIT to check when stuff breaks 17 | 18 | 19 | ## Client side trace logging to database 20 | for logging From client check trace_to_server rambase.tr_dt - not sure of use or implementation. 21 | "INSERT INTO track" track table does not exist yet 22 | -------------------------------------------------------------------------------- /client/code/app/entry.js: -------------------------------------------------------------------------------- 1 | "dont use strict"; 2 | /*jshint browser: true, node: false, jquery: true */ 3 | 4 | // This file automatically gets called first by SocketStream and must always exist 5 | 6 | // Make 'ss' available to all modules and the browser console 7 | window.ss = require('socketstream'); 8 | 9 | ss.server.on('disconnect', function () { 10 | console.log('Connection down :-('); 11 | }); 12 | 13 | ss.server.on('reconnect', function () { 14 | console.log('Connection back up :-)'); 15 | }); 16 | 17 | ss.server.on('ready', function () { 18 | 19 | // Wait for the DOM to finish loading 20 | jQuery(function () { 21 | 22 | // Load app 23 | require('/app'); 24 | 25 | }); 26 | 27 | }); 28 | -------------------------------------------------------------------------------- /client/static/others/qqui1/uniform/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | __MACOSX 3 | *.swp 4 | *~ 5 | /node_modules/ 6 | .sass-cache/ 7 | 8 | # Do not ignore these generated files. This way, the GitHub generated 9 | # archives will automatically still contain the minified version 10 | # jquery.uniform.min.js 11 | # themes/*/css/uniform.*.min.css 12 | 13 | 14 | # These files are created with bin/build 15 | theme-kit/README.html 16 | www/downloads/theme-kit.zip 17 | www/downloads/uniform.*.theme.zip 18 | www/images/bg-input*.png 19 | www/images/sprite*.png 20 | www/index.html 21 | www/javascripts/jquery.uniform.js 22 | www/javascripts/jquery.uniform.min.js 23 | www/javascripts/themecss.js 24 | www/stylesheets/uniform.*.css 25 | -------------------------------------------------------------------------------- /doc/BaseSystem/User Preferences.md: -------------------------------------------------------------------------------- 1 | # SQL-MVC User Preferences, 2 | 3 | Not implemented yet. 4 | 5 | 6 | CREATE TABLE USER_PREFERENCES --:{as:"Table"} 7 | ( 8 | ID PK, --:{as:"pk"} 9 | User_ID FK, --:{as:"fk"} 10 | Show_error_on_open INTEGER, --:{as:"ticked"} 11 | Unit_of_measure FK --:{as:"fk"} 12 | } 13 | 14 | The user preferences should output to a object on the first page load of the user only, cached from then on. 15 | 16 | ## Preferences 17 | 18 | Show_error_on_open : validate all forms when opened 19 | Unit_of_measure : Imperial or metric 20 | Web_Language : any of the i18n languages. 21 | 22 | ## Implementation 23 | 24 | TODO -------------------------------------------------------------------------------- /Quale/Standard/Home/Guest/Models/gallery_Model.quicc: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | <#model 5 | CREATE TABLE GALLERY --:{as:"Table"} 6 | ( 7 | REF VARCHAR(40), --:{as:pk} 8 | NAME VARCHAR(100), --:{as:text,size:40,title:"Image Name",onupdate:"owner=session.id"} 9 | OWNER VARCHAR(40), --:{as:hidden} 10 | STATUS VARCHAR(10) default '', --:{as:ticked} 11 | 12 | PAGE_NUMBER INTEGER, --:{as:text,size:4, length:4} 13 | PAGE_ROTATE INTEGER, --:{as:text,size:4, length:4} 14 | IMAGE_TYPE VARCHAR(40), --:{as:text,size:40} 15 | 16 | FILE_TYPE VARCHAR(40), --:{as:text,size:40} 17 | BLOB_ID VARCHAR(100), --:{as:image} 18 | BLOB_ID_filename VARCHAR(100) --:{as:image_filename} 19 | 20 | ); 21 | #> 22 | -------------------------------------------------------------------------------- /install/patch.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | zxPatch () 3 | { 4 | echo "==============Patching $3 in $1" ; 5 | pushd $cwd/install/Patches/$2/ 6 | diff -u $3 new_$3 >$3.patch 7 | popd 8 | pushd $cwd/$1/ 9 | patch -N < $cwd/install/Patches/$2/$3.patch 10 | rm $cwd/install/Patches/$2/$3.patch 11 | popd 12 | } 13 | 14 | ##should be run from the install directory 15 | cd "$( cd "$( dirname "$0" )" && pwd -P)" 16 | cd .. 17 | cwd=`pwd` 18 | zxPatch node_modules/ss-hogan/node_modules/hogan.js/lib ss-hogan compiler.js 19 | zxPatch node_modules/ss-hogan ss-hogan client.js 20 | zxPatch node_modules/ss-hogan ss-hogan engine.js 21 | zxPatch node_modules/marked/lib marked marked.js 22 | zxPatch node_modules/emoji/lib emoji emoji.js 23 | 24 | -------------------------------------------------------------------------------- /doc/Tutorial_Record_Context_Scripts.md: -------------------------------------------------------------------------------- 1 | # Record context scripts 2 | 3 | Every button can in addition to simply linking to another file (or updating the current) 4 | also execute a script with the context of the record it was in. 5 | 6 | 7 | The record must have a primary key, and this will be passed to the procedure as "run_procedure_pk", 8 | which can be used as per this example. 9 | 10 | Example 11 | 12 | ``` 13 | 14 | <#script(when:name_of_script) 15 | UPDATE PRODUCT set UNIT=cast (UNIT as integer)+1 16 | where ref=:run_procedure_pk 17 | #> 18 | 19 | <#Table 20 | Select 21 | 'Increment', --:{title:"Increment",Action:"Link",Type:"Link",execute:name_of_script} 22 | ref --:{as:pk} 23 | ... 24 | #> 25 | 26 | ``` 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /install/winstart-develop.bat: -------------------------------------------------------------------------------- 1 | 2 | @IF EXIST "%ProgramFiles%\Notepad++\notepad++.exe" ( 3 | start /b "" "%ProgramFiles%\Notepad++\notepad++.exe" "C:\SQL-MVC\node_modules\sql-mvc\Quale\Standard\Home\Guest\Index.quicc" "C:\SQL-MVC\node_modules\sql-mvc\Quale\Standard\Home\Guest\Models\TodoModel.quicc" "C:\SQL-MVC\node_modules\sql-mvc\Quale\Standard\Home\Guest\Controllers\TodoController.quicc" 4 | ) 5 | 6 | @IF EXIST "%ProgramFiles(x86)%\Notepad++\notepad++.exe" ( 7 | start /b "" "%ProgramFiles(x86)%\Notepad++\notepad++.exe" "C:\SQL-MVC\node_modules\sql-mvc\Quale\Standard\Home\Guest\Index.quicc" "C:\SQL-MVC\node_modules\sql-mvc\Quale\Standard\Home\Guest\Models\TodoModel.quicc" "C:\SQL-MVC\node_modules\sql-mvc\Quale\Standard\Home\Guest\Controllers\TodoController.quicc" 8 | ) 9 | -------------------------------------------------------------------------------- /doc/Tutorial_SQL_Extensions.md: -------------------------------------------------------------------------------- 1 | # SQL-MVC Extensions 2 | 3 | The principle intention is for the compiler not to have to understand the SQL language. 4 | 5 | However we break this rule often, sometimes for good reason sometimes for convenience, 6 | we should avoid doing this. 7 | 8 | 9 | 10 | #DDL statements 11 | 12 | 1. CREATE_EXTEND extension_name TABLE : 13 | used to add field to an existing table. Use case facebook_model.quicc adding fields to the basic user table 14 | 15 | 16 | 17 | 2.setting a field's qualia as fk will automatically add a trigger and unique number generator to the field. 18 | 19 | 20 | #DML or PSQL 21 | 22 | 3. Pseudo variable: 23 | This is actually a platform feature and is desirable, mentioned here for completeness. 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /doc/Getting_Started.md: -------------------------------------------------------------------------------- 1 | 2 | # SQL-MVC Getting_Started, 3 | 4 | ##Windows 5 | 6 | [Windows install](https://github.com/quale-quest/sql-mvc-winstaller/blob/master/README.md) 7 | 8 | ##Cloud 9 IDE 9 | [Quick and easy to get going](https://github.com/quale-quest/sql-mvc-c9/blob/master/README.md) 10 | 11 | ##Existing node environment 12 | in a fresh project directory just do: npm install sql-mvc 13 | 14 | ##Install instructions for Linux from scratch: 15 | [Install.md](https://github.com/quale-quest/sql-mvc/blob/master/doc/Install-linux.md) 16 | 17 | 18 | ##Tutorials at : 19 | [Tutorials.md](https://github.com/quale-quest/sql-mvc/blob/master/doc/Tutorials.md) 20 | 21 | 22 | ##Programmers Manual at : 23 | [Github - wiki](https://github.com/quale-quest/sql-mvc/wiki) 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /Quale/Standard/Home/Guest/LayoutOpen.quicc: -------------------------------------------------------------------------------- 1 | 2 |
3 | <#include(file=~/Layout/TopBarGuest)#> 4 | <#include(file=~/Layout/Notify)#> 5 |

Loading...

6 | 7 | 8 |
9 | 10 | <# 11 | Menu (name:"Start",style:"LBMenu") 12 | 13 | Menu (icon="nav-icon dboard-icon" from=user_table_name where="user_pk_field=Operator.user_pk_field" form=Dashboard/Dashboard title="Dashboard") 14 | 15 | MenuScan (menuname:"MainMenu") 16 | 17 | 18 | MenuEnd 19 | 20 | #> 21 | 22 | 23 | 24 | 25 | 26 |
27 |
28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /Quale/Standard/Home/SelfServe/ForgotPassword.quicc: -------------------------------------------------------------------------------- 1 | <#divcontainer(type:Plain , DivoutName:maincontainer)#> 2 | <#master(user_table_name)#> 3 | 4 | 5 | <# 6 | script 7 | UPDATE OR INSERT INTO user_table_name (NAME,LOGIN_NAME,OWNER,INVITED_BY,LANDING_PAGE) VALUES ('EmailMe','EmailMe' ,operator.id, session.id,'xxxx' ) matching (INVITED_BY) ; 8 | #> 9 | 10 | <#view 11 | 12 | 13 | notify(style=Heading) Forgot Password? 14 | 15 | 16 | form() 17 | Select --:{Title:"Manage existing users",from:user_table_name} 18 | first 1 19 | 20 | EMAIL, --:{Action:Edit} 21 | 22 | user_pk_field --:{as:"pk",Type:"Hide"} 23 | From user_table_name 24 | where INVITED_BY=session.id 25 | 26 | #> 27 | 28 | <#button(glymph:"bended-arrow-right-b" from=user_table_name where="INVITED_BY=session.id" form=ForgotPassword_step2 title:"Check my email address") #> 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /server/database/isql-access.sh: -------------------------------------------------------------------------------- 1 | connect '127.0.0.1:/var/db/guest-t2.fdb' user 'SYSDBA' password 'pickfb25' ; 2 | 3 | 4 | 5 | CREATE TABLE MAIL 6 | ( 7 | REF VARCHAR(20), 8 | SUBJECT VARCHAR(20), 9 | TYP INTEGER, 10 | STATUS INTEGER, 11 | TO_USER VARCHAR(20), 12 | CC_USER VARCHAR(20), 13 | FROM_USER VARCHAR(20), 14 | THREAD VARCHAR(20), 15 | KEYWORDS VARCHAR(40), 16 | READSTAMP TIMESTAMP, 17 | PENDING INTEGER, 18 | OUTCOME INTEGER, 19 | IMPORTANCE INTEGER, 20 | ATTACHMENT VARCHAR(20), 21 | BRIEF VARCHAR(4000), 22 | NOTES BLOB SUB_TYPE 1, 23 | STAMP TIMESTAMP DEFAULT 'now', 24 | context_1 VARCHAR(20), 25 | context_2 VARCHAR(20), 26 | DESTINATION TEXT40 27 | ); 28 | 29 | CREATE INDEX IDX_MAIL1 ON MAIL (REF); 30 | CREATE INDEX IDX_MAIL2 ON MAIL (FROM_USER); 31 | CREATE INDEX IDX_MAIL3 ON MAIL (TO_USER); 32 | 33 | -------------------------------------------------------------------------------- /doc/Tutorial_making_field_elements.md: -------------------------------------------------------------------------------- 1 | #Making field elements 2 | 3 | 4 | ## for new link types in Fields.quicc presume with tablestyle:"DT" and Newsubstyle 5 | element(DtNewsubstyleLinkFieldLink_Main) 6 | element(DtNewsubstyleLinkFieldLink_Div) 7 | element(DtNewsubstyleLinkFieldLink_Script) 8 | 9 | use as --:{substyle:Newsubstyle, in quale 10 | 11 | 12 | Element translations functions 13 | proper - converts CamelCase and Under_score text to Proper case text - useful for getting titles from field names 14 | quotes - escape the text into one, single quoted string, converts new lines to spaces and single quotes to double 15 | urlescape - escape a string suitable for passing as a uri 16 | marked - escape markdown text to display as html 17 | 18 | These translate functions can only run on static content, 19 | To translate content from the database you must use softcodecs 20 | 21 | 22 | -------------------------------------------------------------------------------- /Quale/Standard/Home/Guest/Views/ShowPeers.quicc: -------------------------------------------------------------------------------- 1 |
2 |

Other To-do items in the same session

3 |
4 | 5 | <#view 6 | master(TODO_MVC) 7 | 8 | form() 9 | Select --:{Title:"For session ",from:"TODO_MVC",tablestyle:"ToDo"} 10 | OWNER --:{title:"Also in session",Type:"View"} 11 | From TODO_MVC 12 | where (ref=master.ref) 13 | 14 | 15 | table() 16 | Select --:{Title:"Make new records",from:"TODO_MVC",tablestyle:"DT"} 17 | first 100 18 | STATUS, --:{} 19 | NAME, --:{} 20 | OWNER, --:{} 21 | REF --:{} 22 | From TODO_MVC 23 | where (owner=master.owner) 24 | 25 | button (title:"View all") 26 | set here.todo_type=''; 27 | 28 | button {title:"Active"} 29 | set here.todo_type='1'; 30 | 31 | button {title:"Completed"} 32 | set here.todo_type='2'; 33 | 34 | use(todo.source_files) 35 | #> 36 | 37 | -------------------------------------------------------------------------------- /Quale/Standard/Home/Guest/MainMenu/02_Demos/10_todo_mvc.quicc: -------------------------------------------------------------------------------- 1 | 2 | <#view 3 | 4 | dropinmenu (icon:"nav-icon invoice-icon",title:"Todo Reports") 5 | 6 | 7 | table(pagination:3) 8 | Select --:{Title:"View sessions",from:TODO_MVC,tablestyle:DT} 9 | first 1000 10 | OWNER, --:{as:fordetaildiv,form:"Todo/PerSessionToDo"} 11 | Count(*), --:{Type:View} 12 | substring(list(substring(name from 1 for 8)) from 1 for 198) --:{Type:"View"} 13 | 14 | From TODO_MVC 15 | where (( (here.todo_type='' and (status!='3' or status is null)) 16 | or( (status='' or status is null) and here.todo_type='1')or(status='1' and here.todo_type='2'))) 17 | group by Owner 18 | 19 | 20 | button (title:"View all") 21 | set here.todo_type=''; 22 | 23 | button {title:"Active"} 24 | set here.todo_type='1'; 25 | 26 | button {title:"Completed"} 27 | set here.todo_type='2'; 28 | 29 | #> 30 | 31 | 32 |
details go here
33 | -------------------------------------------------------------------------------- /client/static/others/zx/zxCalendar.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | var cal = new CalendarPopup(); 5 | //cal.showNavigationDropdowns(); 6 | cal.setReturnFunction("zx_cal_ReturnFunction"); 7 | 8 | function zxCalendar(i) { 9 | //alert('XXX Use '); 10 | NewCssCal(i,'yyyymmdd','arrow',false); 11 | return false;} 12 | 13 | function zxTimeStamp(i) { 14 | NewCssCal(i,'yyyymmdd','arrow',true); 15 | return false;} 16 | 17 | 18 | 19 | function zx_cal_ReturnFunction(y,m,d) { 20 | if (window.CP_targetInput!=null) { 21 | var dt = new Date(y,m-1,d,0,0,0); 22 | if (window.CP_calendarObject!=null) { window.CP_calendarObject.copyMonthNamesToWindow(); } 23 | window.CP_targetInput.value = formatDate(dt,window.CP_dateFormat); 24 | window.CP_targetInput.onchange(); 25 | } 26 | else { 27 | alert('Use setReturnFunction() to define which function will get the clicked results!'); 28 | } 29 | } 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /Quale/Standard/Home/SelfServe/RegisterNewUser.quicc: -------------------------------------------------------------------------------- 1 | <#divcontainer(type:Login , DivoutName:maincontainer)#> 2 | <# 3 | master(user_table_name) 4 | 5 | #> 6 | 7 | <# 8 | script 9 | UPDATE OR INSERT INTO user_table_name (OWNER,INVITED_BY,LANDING_PAGE) VALUES (operator.id, session.id,'<%run.SelfCreate_Landingpage%>') matching (INVITED_BY) ; 10 | 11 | #> 12 | 13 | <#view 14 | 15 | 16 | notify(style=BigBold1) Create Login 17 | notify id: operator.id and session.id 18 | 19 | 20 | form() 21 | Select --:{Title:"Manage existing users",from:user_table_name,validator:[BlockForm]} 22 | first 1 23 | 24 | EMAIL, --:{Action:Edit,validator:{Email,AllowBlank,BlockField}} 25 | 26 | user_pk_field --:{as:"pk",Type:"Hide"} 27 | From user_table_name 28 | where INVITED_BY=session.id 29 | 30 | #> 31 | 32 | <#button(glymph:"bended-arrow-right-b" from=user_table_name where="INVITED_BY=session.id" form=RegisterNewUser_step2 title:"Next") #> 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /server/udf/q_UDFLibC.sql: -------------------------------------------------------------------------------- 1 | 2 | DECLARE EXTERNAL FUNCTION Z$F_VERSION 3 | RETURNS INTEGER BY VALUE 4 | ENTRY_POINT 'Z$F_VERSION' MODULE_NAME 'q_UDFLibC'; 5 | --select Z$F_VERSION() from RDB$DATABASE 6 | 7 | DROP EXTERNAL FUNCTION Z$F_F2J; 8 | declare external function Z$F_F2J 9 | cstring(256) 10 | returns cstring(256) free_it 11 | entry_point 'Z$F_F2J' module_name 'q_UDFLibC'; 12 | --select Z$F_F2J(NULL)||','||Z$F_F2J('ab"cd') from RDB$DATABASE 13 | 14 | DROP EXTERNAL FUNCTION Z$F_J2F; 15 | declare external function Z$F_J2F 16 | cstring(256) 17 | returns cstring(256) free_it 18 | entry_point 'Z$F_J2F' module_name 'q_UDFLibC'; 19 | --select Z$F_F2J(NULL)||','||Z$F_F2J('ab"cd') from RDB$DATABASE 20 | 21 | DROP EXTERNAL FUNCTION Z$F_F2SQL; 22 | declare external function Z$F_F2SQL 23 | cstring(256) 24 | returns cstring(256) free_it 25 | entry_point 'Z$F_F2SQL' module_name 'q_UDFLibC'; 26 | --select Z$F_F2SQL(NULL)||','||Z$F_F2SQL('ab'cd') from RDB$DATABASE 27 | -------------------------------------------------------------------------------- /Quale/Standard/Home/Layout/Notify.quicc: -------------------------------------------------------------------------------- 1 | 2 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /doc/Theory/Javascript_is_not_fit_for_writing_web_applications.md: -------------------------------------------------------------------------------- 1 | #Javascript is not fit for writing web applications 2 | 3 | 4 | I am not the only one that feels this way: 5 | 6 | 7 | This kind of wide-ranging usage led Microsoft's Scott Hanselman to dub JavaScript the "assembly language for the Web," a sentiment largely shared by people such as Brendan Eich, who invented JavaScript, and Douglas Crockford, who invented JSON, widely used for JavaScript-based data interchange. 8 | 9 | 10 | 11 | 12 | 13 | The software industry, contrary to what you might expect, is absolutely filled with people who hate progress. 14 | most of the software industry makes its decisions like a high school teenager: they obsessively check for what’s cool in their clique, 15 | 16 | [About Lafras] (https://github.com/quale-quest/sql-mvc/blob/master/doc/Theory/About_Lafras.md) 17 | -------------------------------------------------------------------------------- /install/post_script.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | #read -p "When running this script, if prompted for [more] or password, press the enter key, like now...[more]" 4 | 5 | echo Post_Script : 6 | #DEBIAN_FRONTEND=noninteractive sudo apt-get install -y -qq firebird2.5-classic firebird-dev 7 | #service firebird2.5-classic start 8 | #chmod o+r /etc/firebird/2.5/SYSDBA.password 9 | 10 | 11 | echo "node server/compiler/compile.js app Home/Guest all" 12 | # cd node_modules/sql-mvc/;node server/compiler/compile.js app Home/Guest all 13 | 14 | 15 | 16 | echo you can now run the server like this : 17 | #pwd ==/home/ubuntu/workspace/node_modules/sql-mvc 18 | echo "cd node_modules/sql-mvc/;node app.js" 19 | 20 | 21 | #ln Quale/Standard/Home/Guest/Index.quicc ../../Index.quicc -s 22 | #ln node_modules/sql-mvc/Quale/Standard/Home/Guest/Controllers/TodoController.quicc TodoController.quicc -s 23 | #ln node_modules/sql-mvc/Quale/Standard/Home/Guest/Models/TodoModel.quicc TodoModel.quicc -s 24 | 25 | #node app.js 26 | 27 | echo Post_Script done: 28 | -------------------------------------------------------------------------------- /lib/cli/index.js: -------------------------------------------------------------------------------- 1 | // Parse commands from '' binary 2 | // There will be other commands in the future 3 | 4 | exports.process = function(program) { 5 | switch (program.args[0]) { 6 | 7 | // Create a new project 8 | case 'new': 9 | case 'n': 10 | return require('./generate').generate(program); 11 | case 'patch': 12 | case 'p': 13 | return require('./generate').patch(program); 14 | case 'post_script': 15 | return require('./generate').post_script(program); 16 | case 'patchhost': 17 | case 'ph': 18 | return require('./generate').patchhost(program); 19 | case 'forever': 20 | case '4e': 21 | return require('./generate').forever(program); 22 | case 'udf': 23 | return require('./generate').udf(program); 24 | case 'check': 25 | return require('./generate').check(program); 26 | default: 27 | return console.log('Type "sql-mvc new " to create a new application'); 28 | } 29 | }; 30 | -------------------------------------------------------------------------------- /server/database/db_ms_sql_gen.js: -------------------------------------------------------------------------------- 1 | //place holder for future microsoft sql generator 2 | /* 3 | speed/memory performance is not important 4 | ease of use is important 5 | */ 6 | 7 | //http://en.wikipedia.org/wiki/Stored_procedure 8 | 9 | //general info about porting, differences and features 10 | //http://www.firebirdsql.org/manual/migration-mssql-syntax.html 11 | //http://www.ispirer.com/products/interbase-firebird-to-sql-server-migration 12 | 13 | //http://www.paragoncorporation.com/ArticleDetail.aspx?ArticleID=28 14 | 15 | //http://msdn.microsoft.com/en-us/library/dn133186.aspx 16 | //http://msdn.microsoft.com/en-us/library/dn133184.aspx 17 | //ms sql Stored procedures that only reference memory-optimized tables can be natively compiled into machine code 18 | // optimal back-end storage of links are important - 19 | // currently we use basic tables -- this will be optimised - to "in memory" or GTT or redis type tables. 20 | // remember these tables may have a very short life....as soon as we move to the next page they are gone..... 21 | -------------------------------------------------------------------------------- /Quale/Standard/Home/Layout/TopLeft.quicc: -------------------------------------------------------------------------------- 1 | 2 | 5 |
6 | 7 |
    8 | 9 |
  • 10 | 0
  • 11 | 12 | <#Menux (li-class="notify-alert" from=user_table_name where=user_pk_field=Operator.user_pk_field form=Index Title="Active Users" Style=HeadBar 13 | rightspan=new-alert,"($elect count(*) from ..... $))"#> 14 | 15 | <#Menu (li-class="msg-alert" 16 | from="user_table_name" where="user_pk_field=Operator.user_pk_field" 17 | form=Operator\Inbox 18 | Title="Inbox" style=HeadBar 19 | rightspan="new-alert,($elect count(*) from Mail where TO_USER=operator.user_pk_field$)" 20 | )#> 21 |
22 |
23 | -------------------------------------------------------------------------------- /doc/Tutorial_User_management.md: -------------------------------------------------------------------------------- 1 | # User Management 2 | 3 | 4 | Login options in config.json/run: 5 | 6 | "login_first": 7 | false : does first page render with guest user 8 | 9 | "cookie_guest": 10 | false : use common guest user 11 | true : create a unique user per visitor based on a browser cookie 12 | 13 | 14 | "selfmanage" : 15 | true : allow the guest to create its own user 16 | 17 | "Guest_Landingpage":"Home/Guest", - Allow the guest page to be redirected without having to delete the demo pages 18 | 19 | "SelfCreate_Landingpage":"Home/User" - where self created users land up. 20 | 21 | "Sysadmin_Password":"PasswordGen" - make sure sysadmin in demo installs don't come with a fixed public password 22 | 23 | 24 | #Defaulting to recommended default user management 25 | cookie_guest:true 26 | login_first:false 27 | "selfmanage" :true, 28 | 29 | 30 | #Shortcut to login to a specific page 31 | 32 | either in production or very useful in debugging 33 | 34 | examples 35 | http://192.168.177.128:3000/user=sysadmin&password=OTwrg2JZgtaAg730 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /Quale/Standard/Home/Users/Edit_Users.quicc: -------------------------------------------------------------------------------- 1 | <#divcontainer(element:Popup , DivoutName:basicmodaldialog)#> 2 | <#view 3 | master(user_table_name) 4 | 5 | 6 | list{ 7 | "name": "LANDING_PAGE", 8 | "values": { 9 | "Home/Sysadmin": "Home/Sysadmin", 10 | "Home/SelfServe":"Home/SelfServe", 11 | "Home/Guest": "Home/Guest", 12 | "Home/User": "Home/User", 13 | "Home/Manager": "Home/Manager", 14 | } 15 | } 16 | 17 | 18 | form() 19 | Select --:{Title:"Manage existing users",from:user_table_name} 20 | first 1 21 | NAME, --:{Action:Edit} 22 | 23 | LOGIN_NAME, --:{Action:Edit} 24 | PASSWD, --:{Action:Edit} 25 | 26 | MOBILE_NUMBER, --:{Action:Edit} 27 | EMAIL, --:{Action:Edit} 28 | 29 | 30 | LANDING_PAGE, --:{Action:Edit,Type:Lookup,List:LANDING_PAGE} 31 | 32 | 33 | 34 | user_pk_field --:{as:"pk",Type:"Hide"} 35 | From user_table_name 36 | where user_pk_field=master.user_pk_field 37 | 38 | #> 39 | 40 | 41 | 42 | 43 | Done 44 | 45 | 46 | -------------------------------------------------------------------------------- /doc/Caveats.md: -------------------------------------------------------------------------------- 1 | # Caveats 2 | 3 | ##Features and changes still to be added to the docs 4 | 5 | the drop-in package name prefix has changed from sql-mvc to sql-mvc-di 6 | plug-ins are now called sql-mvc-*, and are manually configured under packages in the config file 7 | 8 | We can now inherit config files in a chain, 9 | or from the base install when we are in the super directory under a project name 10 | example : 11 | { 12 | "config_inherit":"base" , 13 | "db": {"database": "/var/lib/firebird/2.5/data/demo_db_gm1.fdb"} 14 | } 15 | 16 | 17 | ##Server 18 | 19 | all parameters passed from command line get leading 0's stripped 20 | including usernames may not start with a 0 21 | 22 | 23 | 24 | 25 | 26 | 27 | maximum script size at the moment is around 32k ..not sure why 28 | 29 | 30 | ##Compiler 31 | 32 | SET TERM ^ ; or SET TERM ; ^ must have a space between the ^ ; 33 | 34 | 35 | ##Language 36 | 37 | in a button script, the code will execute in the reload of the page, thus 38 | local variables like :assign (var="lead_number='0'||substring(params.phone_number from 3)"); 39 | will not be available as #lead_number# 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /doc/Source/General.md: -------------------------------------------------------------------------------- 1 | # Genral Overview, 2 | 3 | ## WIP 4 | 5 | ... 6 | 7 | ## Passing paramaters to the new page 8 | 9 | by class: example --:{class:fordetaildiv,Action:Link,Type:Link,pass:{DivoutName:detaildiv},pointer:0} 10 | 11 | 12 | ## How does run_procedure work? 13 | 14 | when a button with procedure is clicked, 15 | then run_procedure is set as a flag 16 | and the target form will execute a conditional code based on that value in the run procedure 17 | 18 | page params passes 19 | run_procedure 20 | run_procedure_pk 21 | run_procedure_param=''" + param 22 | 23 | this is used in click code, links and pop up pages. 24 | 25 | 26 | 27 | ## How to develop in the source 28 | 29 | 30 | 31 | 32 | 33 | ## TODO 34 | 35 | * remove driver dependant sql from GUI 36 | * separate sql drivers into separate files 37 | * postgresql driver 38 | * mysql documentation 39 | * get config for db engines from alternate file - main config should be kept simple 40 | * DB Engine Directive so wherever you can use alternate database specific code in the quicc source. 41 | 42 | 43 | 44 | 45 | ## Done 46 | 47 | * fake_domains 48 | * simple translations 49 | 50 | -------------------------------------------------------------------------------- /lib/sql-mvc.js: -------------------------------------------------------------------------------- 1 | // SQL-MVC 0.0 2 | // ---------------- 3 | 4 | //require('colors'); 5 | 6 | // Get current version from package.json 7 | var fs = require('fs'); 8 | var version = require('../../package').version; 9 | //= JSON.parse(fs.readFileSync(__dirname + '/../../package.json')).version; 10 | 11 | // Set root path of your project 12 | var root = exports.root = process.cwd().replace(/\\/g, '/'); // replace '\' with '/' to support Windows 13 | 14 | // Warn if attempting to start without a cwd (e.g. through upstart script) 15 | if (root == '/') throw new Error("You must change into the project directory before starting your app"); 16 | 17 | //todo the rest is still socket stream 18 | 19 | // Set environment 20 | var env = exports.env = (process.env['SS_ENV'] || 'development').toLowerCase(); 21 | 22 | var api = {}; 23 | 24 | // Only one instance of the server can be started at once 25 | var serverInstance = null; 26 | 27 | // Public API 28 | var start = function(httpServer) { 29 | 30 | 31 | return api; 32 | }; 33 | 34 | // Ensure server can only be started once 35 | exports.start = function(httpServer) { 36 | return serverInstance || (serverInstance = start(httpServer)); 37 | }; 38 | -------------------------------------------------------------------------------- /Quale/Standard/Home/Layout/ProfileMenuGuest.quicc: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 | Login 5 | 6 | 27 |
28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /client/static/others/qqui1/DataTables/license.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2008-2013 SpryMedia Limited 2 | http://datatables.net 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /Quale/Standard/Home/Guest/Menu/SwitchBar.quicc: -------------------------------------------------------------------------------- 1 | <#Menu (Name=Start Style=ShortCutBar) #> 2 | 3 | 4 | 5 | <#xMenu refresh=1 icon="sc-icon Save-swb" Title="Save" broken - last onchange event does not fire. last update is not saved #> 6 | 7 | <#Menux icon="sc-icon dashboard" from=Me where=ref=Operator.Ref form=Dashboard/Dashboard Title="Busy" #> 8 | 9 | <#Menu ( 10 | form=Settings/Staff 11 | Title="VoiceMail" 12 | icon="sc-icon userlist") 13 | #> 14 | 15 | <#Menux 16 | refresh=1 17 | form=Settings/Numbers 18 | Title="NoAnswer" 19 | icon="sc-icon tasklist" 20 | #> 21 | 22 | <#Menux 23 | refresh=1 24 | form=Reports/QuickReport 25 | Title="InvalidData" 26 | icon="sc-icon reports-c" 27 | #> 28 | 29 | 30 | <#Menux 31 | refresh=1 32 | form=Reports/DefinedReports 33 | Title="DefinedReports" 34 | icon="sc-icon content-c" 35 | #> 36 | 37 | <#Menux 38 | refresh=1 39 | form=Reports/RecentCalls 40 | Title="RecentCalls" 41 | icon="sc-icon PlayFile" 42 | #> 43 | 44 | 45 | <#Menux 46 | refresh=1 47 | form=Reports/Uploads_and_bandwidth 48 | Title="BandwidthUse" 49 | icon="sc-icon satistics" 50 | #> 51 | 52 | 53 | <#Menux icon="sc-icon help-swb" from=Me where=ref=Operator.Ref form=Help/Main Title="Help"#> 54 | 55 | 56 | <#MenuEnd#> 57 | -------------------------------------------------------------------------------- /doc/Tutorial_Saving_Updates.md: -------------------------------------------------------------------------------- 1 | # Saving updates 2 | 3 | When fields are changed the changes are cached at the client side until saved. 4 | 5 | The number of unsaved changes is indicated to the user in UI1 as a counter on a diskette Icon. 6 | 7 | There are 4 ways to save the changes to the server. 8 | 9 | 10 | ##Navigating 11 | Navigating of the page will save all the outstanding changes. 12 | 13 | ##The "Save" Button 14 | Pressing the diskette Icon in UI1, will save the changes and reload the current page. 15 | 16 | ##autosave:Yes 17 | --:{Autosave:yes} qualia on a specific field will save all the outstanding changes when this field is changed, 18 | and also reload the current page with the refreshed values, including any scripts or visual changes that may be in effect due to the changes. 19 | 20 | This option is quite resource intensive and not suitable for high tragic or high latency sites. 21 | 22 | ##autosave:push 23 | --:{Autosave:push} qualia on a specific field will save all the outstanding changes when this field is changed, 24 | but will not reload the page. 25 | 26 | This option is very useful to make sure all changes save to the server with minimal overhead at the server side, 27 | it has the benefit that the user can loose connection or the server may restart and the user will not loose the changes to the fields. 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /doc/Theory/Origin.md: -------------------------------------------------------------------------------- 1 | #Origin 2 | 3 | Since 1999 I have been using my own platform to do the occasional custom line of business web app. 4 | Last year (2014) I had a need to write a simple app for an embedded ARM processor (BeagleBone Black), and as my 5 | platform was windows only, I had to evaluate and choose from the latest app development technologies, 6 | I was quite amazed that app development seems to be less efficient now that back in the 90's. 7 | 8 | So I started this project to modernize my methods, and make them available to the public. These methods were developed in isolation, as a result SQL-MVC is quite different to anything else out there. 9 | 10 | In January 2015 published some pretty cool stuff, but nobody seems to notice it between all the "noise" of new technologies, So I started to try and document the theory behind it, I actually had to discover what I invented and find a way to express it in a theoretical manner that would illustrate the benefits, this has been great and has lead to more abstract thinking and further evolution of the concepts - truly a Quest. 11 | 12 | 13 | Please visit my home page or the Github repository for some more detail on the platform. 14 | 15 | 16 | [About Lafras] (https://github.com/quale-quest/sql-mvc/blob/master/doc/Theory/About_Lafras.md) 17 | 18 | 19 | -------------------------------------------------------------------------------- /client/static/others/qqui1/CSSTree/CSSTree.css: -------------------------------------------------------------------------------- 1 | /* ul[class=tree] and every ul under it loses all alignment, and bullet 2 | * style. 3 | */ 4 | ul.tree, ul.tree ul { 5 | list-style-type: none; 6 | margin:0; 7 | padding:0; 8 | display : none; 9 | } 10 | 11 | /* Every ul under ul[class=tree] gets an indent of 1em, and a background 12 | * image (vertical line) applied to all nodes under it (repeat-y) 13 | */ 14 | ul.tree ul { 15 | padding-left: 1em; 16 | background: url(vline.png) repeat-y; 17 | } 18 | 19 | /* ... except the last ul child in every ul; so no vertical lines for 20 | * the children of the last ul 21 | */ 22 | ul.tree ul:last-child { 23 | background: none; 24 | } 25 | 26 | /* Every li under ul[class=tree] 27 | * - gets styling to make it bold and blue, and indented. 28 | * - gets a background image (tilted T), to denote that its a node 29 | * - sets height to match the height of background image 30 | */ 31 | ul.tree li { 32 | margin:0; 33 | padding: 0 1.2em; 34 | background: url(node.png) no-repeat; 35 | line-height: 20px; 36 | color: #369; 37 | font-weight: bold; 38 | } 39 | 40 | /* The last li gets a different background image to denote it as the 41 | * end of branch 42 | */ 43 | ul.tree li:nth-last-of-type(1) { 44 | background: url(lastnode.png) no-repeat; 45 | } 46 | -------------------------------------------------------------------------------- /Quale/Standard/Home/LayoutOpen.quicc: -------------------------------------------------------------------------------- 1 | 2 | 3 | <#xinclude file=Menu/SlideBar 4 | xifnotexists="select user_display_field from user_table_name where user_table_name.user_pk_field=user_pk_field and user_keys_field containing 'SWB'" 5 | #> 6 | 7 |
8 | <#include(file=~/Layout/TopBar)#> 9 | <#include(file=~/Layout/Notify)#> 10 |

Loading...

11 | <#xinclude file=Menu/SwitchBar 12 | xifnotexists="select user_display_field from user_table_name where user_table_name.user_pk_field=operator.user_pk_field and user_keys_field containing 'SWB'" 13 | #> 14 | 15 | 16 |
17 | 18 | <# 19 | Menu (name:"Start",style:"LBMenu") 20 | 21 | Menu (icon="nav-icon dboard-icon" from=user_table_name where="user_pk_field=Operator.user_pk_field" form=Dashboard/Dashboard title="Dashboard") 22 | 23 | MenuScan (menuname:"MainMenu") 24 | 25 | rem Menu{form=Dashboard/Dashboard xform:"Help/Main",title:"About" fromx=user_table_name wherex="user_pk_field=Operator.user_pk_field"} 26 | 27 | 28 | MenuEnd 29 | 30 | #> 31 | 32 | 33 | 34 | 35 | 36 |
37 |
38 | 39 | <#xG960 #> 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /Quale/Standard/Home/SelfServe/ForgotPassword_step2.quicc: -------------------------------------------------------------------------------- 1 | <#divcontainer(type:Plain , DivoutName:maincontainer)#> 2 | <#view 3 | master(user_table_name) 4 | 5 | 6 | ifquery ( ($select count(*) from Z$USER u where u.status=10 and u.EMAIL=(select email from Z$USER s where s.INVITED_BY=session.id) $)>0 ) 7 | notify (style=Heading) Your email is registered. 8 | 9 | button(glymph:"bended-arrow-right-b" from=user_table_name where="INVITED_BY=session.id" form=ForgotPassword_step3 title:"Please email me my login details") 10 | sql INSERT INTO MAIL (SUBJECT, TYP, STATUS, TO_USER,FROM_USER,STAMP, BRIEF) VALUES ( 'Login Details Reminder', 11 ,11,(Select first 1 user_pk_field From user_table_name where INVITED_BY=session.id),'no reply', 'now', 11 | ' your login details:\r\n Username:'||(Select first 1 LOGIN_NAME from user_table_name where (status/10=1) and EMAIL=(Select first 1 EMAIL From user_table_name where INVITED_BY=session.id))|| 12 | ' \r\n Password:'||(Select first 1 PASSWD from user_table_name where (status/10=1) and EMAIL=(Select first 1 EMAIL From user_table_name where INVITED_BY=session.id)) 13 | ) 14 | 15 | 16 | elsequery 17 | 18 | notify (style=Heading) Your email is not registered. 19 | 20 | 21 | button(glymph:"bended-arrow-right-b" from=user_table_name where="INVITED_BY=session.id" form=RegisterNewUser title:"Register As New User") 22 | 23 | endquery 24 | 25 | #> 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /server/udf/Makefile: -------------------------------------------------------------------------------- 1 | #working make file for linux taken from 2 | #http://www.aolserver.cz/ -> http://www.aolserver.cz/download/UDF_fb_mhash-1.2.01.tgz 3 | 4 | #CLI version 5 | #sudo gcc -fPIC -Wall -w -I/opt/firebird/include -c q_UDFLibC.c -o q_UDFLibC.o 6 | #sudo ld q_UDFLibC.o -o /opt/firebird/UDF/q_UDFLibC.so -shared -lib_util 7 | 8 | #old IBASE= /opt/firebird 9 | IBASE= /usr/lib/firebird/2.5 10 | 11 | # --------------------------------------------------------------------- 12 | # General Compiler and linker Defines for Linux 13 | # --------------------------------------------------------------------- 14 | CC= gcc 15 | LINK= gcc 16 | LIB_LINK= ld 17 | CFLAGS= -c -w -I$(IBASE)/include 18 | LIB_CFLAGS= -fPIC $(CFLAGS) 19 | LIB_LINK_FLAGS= -shared -lib_util 20 | RM= rm -f 21 | 22 | .SUFFIXES: .o .c 23 | 24 | 25 | .c.o: 26 | $(CC) $< $(CFLAGS) $@ 27 | 28 | 29 | 30 | all: q_UDFLibC 31 | 32 | q_UDFLibC.o:q_UDFLibC.c 33 | $(CC) $< $(LIB_CFLAGS) -o $@ 34 | 35 | q_UDFLibC: q_UDFLibC.o 36 | $(LIB_LINK) $@.o -o $@ $(LIB_LINK_FLAGS) 37 | @echo coping q_UDFLibC to $(IBASE)/UDF 38 | cp q_UDFLibC $(IBASE)/UDF/q_UDFLibC.so 39 | ls -l $(IBASE)/UDF/q_UDFLibC.so 40 | 41 | clean: 42 | $(RM) *.o q_UDFLibC 43 | 44 | sudo: 45 | sudo cp q_UDFLibC $(IBASE)/UDF/q_UDFLibC.so 46 | ls -l $(IBASE)/UDF/q_UDFLibC.so 47 | 48 | 49 | 50 | # -------------------------------------------------------------------- 51 | #eof -------------------------------------------------------------------------------- /Quale/Standard/Home/Layout/ProfileMenu.quicc: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 | <#print() #operator.user_display_field# #> 5 | 6 | 20 |
21 | 22 | 23 | -------------------------------------------------------------------------------- /client/templates/Widgets/Uploader.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | {{#f.Title}}{{f.Title}}{{/f.Title}} 6 |
7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 18 | 32 | 33 | Container( style=Tab tab=Info) 34 | rem ------------------------------------------------------------------------------------------------------- 35 | notify(style=Heading) Info 36 | 37 | rem here should not be used in guest user 38 | rem print() you were here last at here.this_page_info 39 | rem script() set here.this_page_info=cast('now' as timestamp); 40 | html()
41 | 42 | print() ($select count(*) from MAIL where FROM_USER=session.id and SUBJECT='login log' $) actions from you 43 | and ($select count(*) from MAIL where SUBJECT='login log' $) actions total (in this session). 44 | 45 | NextContainer (tab=Source_Code) 46 | Container (style=Accordion title=View) 47 | print This source file is here.thisfile: 48 | include (type="pre" file="this" ) 49 | NextContainer (title=Model) 50 | print This source file is Models/TodoModel : 51 | include (type="pre" file="Models/TodoModel" ) 52 | NextContainer (title=Controller) 53 | print This source file is Controllers/TodoController : 54 | include (type="pre" file="Controllers/TodoController" ) 55 | 56 | CloseContainer 57 | 58 | CloseContainer 59 | #> 60 | 61 | 62 | -------------------------------------------------------------------------------- /Quale/Standard/Home/Guest/MainMenu/02_Demos/20_gallery_view.quicc: -------------------------------------------------------------------------------- 1 | 2 |
3 |

SQL-MVC Gallery example

4 | Layout from http://www.dwuser.com/education/content/creating-responsive-tiled-layout-with-pure-css/ 5 | 6 |
7 | 8 | <#table() 9 | Select --:{Title:"",from:"GALLERY",tablestyle:"Gallery"} 10 | NAME --:{Type:"Hide"} 11 | ,BLOB_ID --:{} 12 | From GALLERY 13 | where blob_id is not null and status='' and IMAGE_TYPE='Gallery' 14 | 15 | Container (style=Tab tab=Maintenance) 16 | 17 | 18 | 19 | table 20 | Select --:{Title:"Make new records",from:"GALLERY",tablestyle:"Todo"} 21 | STATUS, --:{Action:Edit} 22 | NAME, --:{Action:Edit,"placeholder":"What needs to be done (tab to save)"} 23 | REF --:{} 24 | ,BLOB_ID --:{width:48} 25 | From GALLERY 26 | where blob_id is not null and status<>'3' and IMAGE_TYPE='Gallery' 27 | 28 | #> 29 | 30 | <# 31 | 32 | NextContainer( rem="----------------------------------------------------------" tab=NewPictures) 33 | 34 | script 35 | --{if:"(select count(ref) from GALLERY where blob_id is null and IMAGE_TYPE='Gallery')=0" } 36 | SQL INSERT INTO GALLERY (NAME, OWNER, STATUS,IMAGE_TYPE) 37 | VALUES ('New', operator.id, '','Gallery'); 38 | 39 | 40 | table 41 | --{if:"(select count(ref) from GALLERY where blob_id is null and IMAGE_TYPE='Gallery')=0" } 42 | Select --:{Title:"Make new records",from:"GALLERY",autoinsert:"top",tablestyle:"Todo"} 43 | STATUS, --:{Action:"Edit",debug:0,autosave:yes} 44 | NAME, --:{Action:"Edit","placeholder":"What needs to be done (tab to save)","autosave":yes} 45 | REF --:{Action:"View",Type:"Hide"} 46 | From GALLERY 47 | 48 | 49 | form 50 | Select --:{Title:"pictures",from:"GALLERY"} 51 | first 1 52 | NAME, --:{Action:"Edit",title:"Name for picture"} 53 | STATUS, --:{Action:"Edit",title:"Don't show this picture"} 54 | REF --:{Action:"View",Type:"Hide"} 55 | From GALLERY 56 | where blob_id is null and IMAGE_TYPE='Gallery' 57 | 58 | 59 | table 60 | Select --:{Title:"pictures",from:"GALLERY",tablestyle:"Upload"} 61 | first 1 62 | BLOB_ID, --:{Action:Edit} 63 | REF --:{} 64 | From GALLERY 65 | where blob_id is null and IMAGE_TYPE='Gallery' 66 | 67 | 68 | NextContainer (rem="----------------------------------------------------------" tab=Source_Code) 69 | include(type="pre",file="this") 70 | CloseContainer 71 | 72 | #> 73 |
74 |
75 |
76 |
77 | -------------------------------------------------------------------------------- /server/compiler/modules/widgets/G960_widget.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | /* 3 | speed/memory performance is not important 4 | ease of use is important 5 | */ 6 | //not used yet but will be 7 | 8 | exports.module_name='g960_widget.js'; 9 | exports.tags=[{name:"g960"}]; 10 | 11 | var get_style = function (zx, o, Key) { //used for g960,container and notify //this can be made common into a style plugin 12 | var Value = ""; 13 | if (o.localstyle !== undefined) { 14 | Value = zx.UIsl[o.localstyle + Key]; 15 | } else { 16 | if (o.style !== undefined) 17 | zx.G960.style = o.style; //set new style for the rest of the buttons 18 | 19 | if (zx.G960.style !== "") 20 | Value = zx.UIsl[zx.G960.style + Key]; 21 | } 22 | 23 | if ((Value === undefined) || (Value === "")) //not set so use the unstyled value 24 | Value = zx.UIsl[Key]; 25 | if (Value === undefined) 26 | return ""; 27 | 28 | return Value; 29 | }; 30 | 31 | var g960 = function (zx, o) { 32 | zx.G960.ContainersCount++; 33 | var result; 34 | 35 | if ((o.grid === undefined) || (o.grid === '0') || (o.grid === 'close')) { 36 | zx.G960.ContainersClosed = 1; 37 | zx.G960.ContainersCount = 0; 38 | return get_style(zx, o, "G960Close"); 39 | } 40 | if (o.grid === "clear") { 41 | return get_style(zx, o, "G960Clear"); 42 | } 43 | if (zx.G960.ContainersCount === 1) { 44 | result = get_style(zx, o, "G960Open"); 45 | } else { 46 | if (zx.G960.ContainersCount === 2) 47 | result = get_style(zx, o, "G960First"); 48 | else 49 | result = get_style(zx, o, "G960Next"); 50 | } 51 | 52 | result = result.replace("$grid$", o.grid); 53 | return result; 54 | }; 55 | 56 | exports.tag_g960 = function (zx, o) { 57 | var ReplaceText = g960(zx, o); 58 | zx.mt.lines.push(ReplaceText); 59 | }; 60 | 61 | exports.start_pass = function (zx /*, line_objects*/ 62 | ) { 63 | zx.G960.ContainersCount = 0; 64 | }; 65 | 66 | exports.done_div = function (zx, line_objects) { //dinviner does not use this yet - TODO expand diviner... 67 | if (!zx.G960.ContainersClosed) { //close any open containers before the div ends 68 | zx.mt.lines.push(get_style(zx, line_objects, "G960Close")); 69 | } 70 | }; 71 | 72 | exports.init = function (zx) { 73 | //validates and translates v2 tag contents to .divin input 74 | 75 | //console.warn('init G960_widget:'); 76 | 77 | zx.G960 = { 78 | ContainersCount : 0 79 | }; 80 | zx.G960.ContainersClosed = 0; 81 | zx.G960.style = ""; 82 | 83 | zx.UIsl.G960Open = "
"; 84 | zx.UIsl.G960First = "
"; 85 | zx.UIsl.G960Next = "
"; 86 | zx.UIsl.G960Clear = "
"; 87 | zx.UIsl.G960Close = "
"; 88 | 89 | }; 90 | -------------------------------------------------------------------------------- /Quale/Standard/Home/SelfServe/RegisterNewUser_step3.quicc: -------------------------------------------------------------------------------- 1 | <#divcontainer(type:Login , DivoutName:maincontainer)#> 2 | <#view 3 | master(user_table_name) 4 | script set session.invalid='0'; 5 | 6 | ifquery ( ($select count(*) from Z$USER u where u.status=10 and u.LOGIN_NAME=(select LOGIN_NAME from Z$USER s where s.INVITED_BY=session.id) $)>0 ) 7 | script set session.invalid='1'; 8 | notify (style=Heading) Your chosen user name is already in use please try another. 9 | endquery 10 | 11 | 12 | 13 | ifquery ( ($select count(*) from Z$USER u where u.INVITED_BY=session.id and OCTET_LENGTH(u.PASSWD)<6 $)>0 ) 14 | script set session.invalid='1'; 15 | notify (style=Heading) Your chosen password is invalid please try again. 16 | endquery 17 | 18 | 19 | 20 | 21 | ifquery ( session.invalid='1' ) 22 | 23 | button(glymph:"bended-arrow-right-b" from=user_table_name where="INVITED_BY=session.id" form=RegisterNewUser title:"Try Again") 24 | 25 | elsequery 26 | notify (style=Heading) User Create Successful 27 | 28 | <%#run.cookie_guest%> 29 | notify run.cookie_guest operator.id 30 | <%/run.cookie_guest%> 31 | 32 | <%^run.cookie_guest%> 33 | notify not run.cookie_guest operator.id 34 | <%/run.cookie_guest%> 35 | 36 | 37 | <%#run.cookie_guest%> 38 | ifquery ( ($SELECT count(*) FROM user_table_name where user_pk_field=operator.id and user_name_field='SelfServe' $)>0 ) 39 | script 40 | UPDATE user_table_name set Status=10 where INVITED_BY=session.id; 41 | endquery 42 | 43 | ifquery ( ($SELECT count(*) FROM user_table_name where user_pk_field=operator.id and user_name_field='SelfServe' $)=0 ) 44 | script 45 | UPDATE user_table_name set 46 | user_display_field =(select user_display_field from user_table_name where INVITED_BY=session.id), 47 | user_name_field =(select user_name_field from user_table_name where INVITED_BY=session.id), 48 | user_password_field =(select user_password_field from user_table_name where INVITED_BY=session.id), 49 | MOBILE_NUMBER =(select MOBILE_NUMBER from user_table_name where INVITED_BY=session.id), 50 | user_landing_page =(select user_landing_page from user_table_name where INVITED_BY=session.id), 51 | EMAIL =(select EMAIL from user_table_name where INVITED_BY=session.id) 52 | where user_pk_field=operator.id; 53 | script 54 | DELETE FROM user_table_name where INVITED_BY=session.id; 55 | 56 | endquery 57 | 58 | <%/run.cookie_guest%> 59 | 60 | <%^run.cookie_guest%> 61 | UPDATE user_table_name set Status=10 where INVITED_BY=session.id 62 | <%/run.cookie_guest%> 63 | 64 | button(glymph:"bended-arrow-right-b" from=user_table_name where="INVITED_BY=session.id" form=Operator/Switch title:"Login as the new user") 65 | 66 | 67 | 68 | endquery 69 | 70 | 71 | 72 | #> 73 | 74 | -------------------------------------------------------------------------------- /client/static/others/qqui1/DataTables/Readme.md: -------------------------------------------------------------------------------- 1 | # DataTables plug-in for jQuery 2 | 3 | DataTables is a table enhancing plug-in for the [jQuery](//jquery.com) Javascript library, adding sorting, paging and filtering abilities to plain HTML tables with minimal effort. The stated goal of DataTables is: 4 | 5 | > To enhance the accessibility of data in HTML tables. 6 | 7 | To meet this goal, DataTables is developed with two distinct groups of users in mind: 8 | 9 | * You the developers using DataTables. For developers DataTables provides a wide array of options for how data should be obtained, displayed and acted upon, along with an extensive API for accessing and manipulating the table. 10 | 11 | * End users. For those using the interface DataTables presents, actions to get the most from the information contained in tables, such as sorting and filtering, along with paging and scrolling of the data in table, are easy to use, intuitive and fast. 12 | 13 | 14 | ## Installation 15 | 16 | In most cases, to use DataTables all you need to do is include jQuery, the DataTables Javascript and DataTables CSS files in your HTML page. See the [DataTables manual](http://datatables.net/manual/installation#Including-Javascript-/-CSS) for details on how to do this using the latest version of DataTables. 17 | 18 | 19 | ## Usage 20 | 21 | In its simplest case, DataTables can be initialised with a single line of Javascript: 22 | 23 | ```js 24 | $('table').dataTable(); 25 | ``` 26 | 27 | where the jQuery selector is used to obtain a reference to the table you want to enhance with DataTables. Optional configuration parameters can be passed in to DataTables to have it perform certain actions by using a configuration object as the parameter passed in to the DataTables constructor. For example: 28 | 29 | ```js 30 | $('table').dataTable( { 31 | paginate: false, 32 | scrollY: 300 33 | } ); 34 | ``` 35 | 36 | will disable paging and enable scrolling. 37 | 38 | A full list of the options available for DataTables are available in the [documentation](//datatables.net). 39 | 40 | 41 | ## Documentation 42 | 43 | Full documentation of the DataTables options, API and pug-in interface are available on the [DataTables web-site](//datatables.net). The site also contains information on the wide variety of plug-ins that are available for DataTables, which can be used to enhance and customise your table even further. 44 | 45 | 46 | ## Support 47 | 48 | Support for DataTables is available through the [DataTables forums](//datatables.net/forums) and [commercial support options](//datatables.net/support) are available. 49 | 50 | 51 | ## License 52 | 53 | DataTables is release under the [MIT license](//datatables.net/license). You are free to use, modify and distribute this software, as long as the copyright header is left intact (specifically the comment block which starts with `/*!`. 54 | -------------------------------------------------------------------------------- /doc/Theory/About_Lafras.md: -------------------------------------------------------------------------------- 1 | #About Lafras 2 | 3 | **My story ** - I grew up in a small mining town in the 1970's, my older brother did radio and TV repairs out of the house, so I was always tinkering with the soldering iron, playing with the 'scope, building crystal radio's, oscillators, best of all - shock machines. At about the age of 12 I read a article in an electronics magazine on the Von Neumann architecture, I set out to build a decimal display counter with a 4017, and diodes as a ROM, this was my first computer and stored program. After that I used to go with my brother when he bought TV parts, so I could read the data-sheets of processors such as the 8008 in the shop as the data-books were to expensive to take home. Shortly after that I saw a newspaper advert for a ZX81 computer at a department store in the "big city", I took the money I had saved from my paper route and without telling my parents set out by train on the 100 mile journey, without a clue of where I was going. I got lost that day, but also found my way. 4 | 5 | My Chronological Journey - 1982, Build Decimal display with 4017, and diodes as a ROM, ZX81 (BASIC, Z80 Assembler), ZXSPECTUM, VIC20, Spectra Video, Comodore64, BBC Micro, Built Homebrew Z80 system with oscilloscope for a display, IBM PC (DOS, GW BASIC), University of Pretoria (1 year only), PC Clones (Turbo-Pascal, x86 Intel Macro Assembler), dBase, Clipper, Built Multi tasking PC application using VT100 terminals and co-operatively swapping Turbo Pascal's stack in Assembler, Novell btrieve, 1991 , IBM AS400 (RPG-400), Microchip PIC16C56 (Assembler, c), Borland C++ , Built Remote monitoring and reporting equipment using a PIC and minimalist modem hardware (12 components) and signal processing in the PIC (<$3), 1999, Borland C++ Builder, SQL, HTML , FPGA (VHDL), Built embedded telecoms using PIC/C/BCB/HTML, PHP(minimal), JavaScript, 2007, Linux (Python, Asterisk Dialplan), ARM-M3(cortex) embedded processors (GCC), Node.js 6 | 7 | Current passion : QualeQuest 8 | 9 | I am a solo programmer, I tend to do my own thing, About 20% of my day is spent reading about programming. 10 | 11 | I have been a self employed entrepreneur since 1992, but I focus on heavily technical aspects and less on running the business so I have had moderate success but never been able to scale the business aspects (still trying). 12 | 13 | I started QualeQuest, because in 1999 I intuitively created a platform for web development that I used for many years, in 2014 I started to modernise, rewrite and open-source it. I published some pretty cool stuff, but nobody seems to notice it between all the "noise" of new technologies, So I started to try and document the theory behind it, I actually had to discover what I invented and find a way to express it in a theoretical manner that would illustrate the benefits, this has been great and has lead to more abstract thinking and further evolution of the concepts - truly a Quest. 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /server/IDE/json_tree.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | //html and css from https://github.com/gurjeet/CSSTree 4 | exports.max_depth=10; 5 | 6 | var show_longstring = function (str) { 7 | var siz=120; 8 | if (str===undefined) return undefined; 9 | if (typeof str !== 'string' ) str = '[OBJECT]';//JSON.stringify(str); 10 | str=str.trim(); 11 | if (str.length>siz) return "["+str.substring(0,siz/2).replace(/\n/g,'\\n') + " ..." + (str.length) + " bytes... " + str.slice(-siz/2).replace(/\n/g,'\\n')+"]"; 12 | else return "["+str+ "] shown in full "+ (str.length) + " bytes... "; 13 | } 14 | 15 | 16 | exports.json_tree_html = function(name,object,output,TreeMessage){ 17 | 18 | var this_depth=0; 19 | function html_recur(name,object,output) 20 | { 21 | if (this_depth>=exports.max_depth) 22 | { 23 | //console.log('to deep ',object); 24 | output.push(name+" (to deep to go further):"+JSON.stringify(object)); 25 | return; 26 | } 27 | this_depth++; 28 | 29 | if (Array.isArray(object)) 30 | { 31 | //console.log('array type ',object); 32 | //output.push(Array(this_depth*4).join(" ") +"+ "+name+":"+JSON.stringify(object)); 33 | output.push("
  • + "+name+" -->"/*+show_longstring(JSON.stringify(object))*/+"
    • "); 34 | 35 | for (var index = 0; index < object.length; index ++){ 36 | html_recur(name+'['+String(index)+']',object[index],output ); 37 | } 38 | output.push("
    "); 39 | } 40 | else 41 | if (typeof object === 'object') 42 | { 43 | // loop over the keys 44 | //console.log('object type ',object); 45 | //output.push(Array(this_depth*4).join(" ")+ "* "+name+":"+JSON.stringify(object)); 46 | output.push("
  • * "+name+" -->"/*+show_longstring(JSON.stringify(object))*/+"
    • "); 47 | for (var key in object){ 48 | html_recur( key,object[key],output ); 49 | } 50 | output.push("
    "); 51 | } 52 | else 53 | { 54 | //console.log('base type ',name+":",object); 55 | output.push("
  • "+name+":"+String(object)+"
  • "); 56 | //output.push("
  • "+Array(this_depth*4).join(" ") +""+name+":"+String(object)+"
  • "); 57 | } 58 | this_depth--; 59 | } 60 | 61 | 62 | // loop over the objects 63 | output.push("
  • "+TreeMessage+"+ "+JSON.stringify(object).length +" Bytes
  • "); 64 | output.push('
      '); 65 | html_recur(name,object,output); 66 | output.push('
    '); 67 | // return the calculated size 68 | 69 | return ; 70 | 71 | } 72 | 73 | 74 | 75 | 76 | //var obj={abc:5,def:8,ghi:[123,567,870],klm:{qwery:5,yuiop:{poiuy:5}}}; 77 | //var output = []; 78 | //exports.json_tree_html("root",obj,output); 79 | //console.log('\n...........................................\n',output.join('\n')); 80 | //process.exit(2); 81 | 82 | 83 | 84 | 85 | -------------------------------------------------------------------------------- /install/Patches/socketstream/new_http.js: -------------------------------------------------------------------------------- 1 | // Serve Views 2 | // ----------- 3 | // Extend Node's HTTP http.ServerResponse object to serve views either from a cache (in production) 4 | // or by generating them on-the-fly (in development) 5 | // Note: Even though this is exactly what Express.js does, it's not best practice to extend Node's native 6 | // objects and we don't be doing this in SocketStream 0.4 7 | 'use strict'; 8 | 9 | var cache, fs, http, pathlib, res, view, log; 10 | 11 | require('colors'); 12 | 13 | fs = require('fs'); 14 | 15 | pathlib = require('path'); 16 | 17 | http = require('http'); 18 | 19 | view = require('./view'); 20 | 21 | log = require('../utils/log'); 22 | 23 | // Cache each view in RAM when packing assets (i.e. production mode) 24 | cache = {}; 25 | 26 | // Get hold of the 'response' object so we can extend it later 27 | res = http.ServerResponse.prototype; 28 | 29 | module.exports = function(ss, clients, options) { 30 | 31 | // Append the 'serveClient' method to the HTTP Response object 32 | res.serveClient = function(name,post_process_cb) { 33 | var client, fileName, self, sendHTML; 34 | self = this; 35 | sendHTML = function(html, code) { 36 | if (!code) { 37 | code = 200; 38 | } 39 | /* 40 | self.writeHead(code, header) removed to allow connect.compress() perform static HTML files compression. 41 | Before it was work only for static asserts because of response header overwriting. 42 | Instead we do set response status and header with two separate methods self.statusCode and self.setHeader(name, value); 43 | */ 44 | if (post_process_cb) html = post_process_cb(html); 45 | self.statusCode = code; 46 | self.setHeader('Content-Length', Buffer.byteLength(html)); 47 | self.setHeader('Content-Type', 'text/html; charset=UTF-8'); 48 | self.end(html); 49 | }; 50 | try { 51 | client = typeof name === 'string' && clients[name]; 52 | if (!client) { 53 | throw new Error('Unable to find single-page client: ' + name); 54 | } 55 | 56 | // Load packed HTML file 57 | if (options.packedAssets) { 58 | 59 | // Return from in-memory cache if possible 60 | if (!cache[name]) { 61 | fileName = pathlib.join(ss.root, options.dirs.assets, client.name, client.id + '.html'); 62 | cache[name] = fs.readFileSync(fileName, 'utf8'); 63 | } 64 | 65 | // Send to browser 66 | return sendHTML(cache[name]); 67 | } else { 68 | // Generate View from scratch in development 69 | return view(ss, client, options, sendHTML); 70 | } 71 | } catch (e) { 72 | // Never send stack trace to the browser, log it to the terminal instead 73 | sendHTML('Internal Server Error', 500); 74 | log.error('Error: Unable to serve HTML!'.red); 75 | return log.error(e); 76 | } 77 | }; 78 | 79 | // Alias res.serveClient to keep compatibility with existing apps 80 | res.serve = res.serveClient; 81 | return res.serve; 82 | }; 83 | -------------------------------------------------------------------------------- /server/compiler/modules/widgets/notify_widget.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | /* 3 | speed/memory performance is not important 4 | ease of use is important 5 | */ 6 | 7 | var fileutils = require('../../../lib/fileutils.js'); 8 | var path = require('path'); 9 | var fs = require('fs'); 10 | var page = require('../../modules/page.js'); 11 | var gets = require('../../zx.js').gets; 12 | 13 | exports.module_name='notify_widget.js'; 14 | exports.tags=[{name:"notify", 15 | man_page:"General purpose notify pop up notifications.\n Usage: style=[brief|sticky] icon=image.png title=\"\" i18n _text" 16 | },{name:"help" ,man_page:"Shows a help message with icon .\n Usage i18n _text" 17 | },{name:"infrom" ,man_page:"Shows a information message with icon .\n Usage i18n _text" 18 | },{name:"warning",man_page:"Shows a warning message with icon .\n Usage i18n _text" 19 | },{name:"success",man_page:"Shows a success message with icon .\n Usage i18n _text" 20 | },{name:"failure",man_page:"Shows a failure message with icon .\n Usage i18n _text" 21 | },{name:"print",man_page:"Shows a plain message.\n Usage i18n _text"} 22 | ]; 23 | 24 | 25 | 26 | var get_style = function (zx, o, Key) { //used for g960,container and notify //this can be made common into a style plugin 27 | var Value = ""; 28 | if (o.localstyle !== undefined) { 29 | Value = zx.UIsl[o.localstyle + Key]; 30 | } else { 31 | if (o.style) 32 | Value = zx.UIsl[o.style + Key]; 33 | } 34 | 35 | if ((Value === undefined) || (Value === "")) //not set so use the unstyled value 36 | Value = zx.UIsl[Key]; 37 | if (Value === undefined) 38 | return ""; 39 | 40 | return Value; 41 | }; 42 | 43 | 44 | 45 | var notify = exports.tag_notify = function (zx, line_obj) { 46 | line_obj.style=zx.gets(line_obj.style) 47 | var template=get_style(zx, line_obj,"NotifyDiv"); 48 | 49 | line_obj.Text=zx.expressions.TextWithEmbededExpressions(zx, line_obj, line_obj.nonkeyd, "mt", "tag_help"); 50 | //line_obj.Text = line_obj.Text.replace(/\n/g,' '); 51 | //console.warn('tag_notify:',line_obj.Text); 52 | //var result = hogan.compile(template).render(line_obj); 53 | 54 | var result = zx.hogan_ext.compile_render(zx, line_obj , template); 55 | zx.mt.lines.push(result); 56 | 57 | //console.warn('tag_help:',line_obj,template,result); 58 | }; 59 | 60 | exports.tag_print = function (zx, line_obj) { 61 | line_obj.style="Print"; 62 | notify(zx, line_obj); 63 | }; 64 | 65 | 66 | exports.tag_help = function (zx, line_obj) { 67 | line_obj.style="Help"; 68 | notify(zx, line_obj); 69 | } 70 | 71 | exports.tag_infrom = function (zx, line_obj) { 72 | line_obj.style="Infrom"; 73 | notify(zx, line_obj); 74 | } 75 | exports.tag_warning = function (zx, line_obj) { 76 | line_obj.style="Warning"; 77 | notify(zx, line_obj); 78 | } 79 | 80 | exports.tag_success = function (zx, line_obj) { 81 | line_obj.style="Success"; 82 | notify(zx, line_obj); 83 | } 84 | 85 | exports.tag_failure = function (zx, line_obj) { 86 | line_obj.style="Failure"; 87 | notify(zx, line_obj); 88 | } 89 | 90 | 91 | 92 | 93 | 94 | 95 | -------------------------------------------------------------------------------- /doc/DBspecific/MySQL Guide.md: -------------------------------------------------------------------------------- 1 | # MySQL Guide, 2 | 3 | ## SQL Standards 4 | say something ... 5 | 6 | 7 | ## SQL variations 8 | say something 9 | 10 | ## Issues 11 | * mysql does not validate the existence or dependency of stored procedures so you clould ahve a live database with dependancy errors 12 | * my sql does not ave "create or alter" on most object, you have to drop and then create. 13 | * drop and then create cannot be done in a transaction so you have to prevent user access during maintenance procedures. 14 | 15 | ## Common re translations 16 | SQL-MVC was written based on Firebird SQL, and primary development still occurs on Firebird SQL. 17 | The base demo app should compile from a single source, the objective is to allow as much compatible code as possible to be translated to the specific database driver. 18 | The base will contain at least one example of db specific code . 19 | 20 | 21 | * Comments -- 22 | * basic compatable functions len length octet_length 23 | * update or insert ..matching 24 | * MAXDATE '2030/01/01' 25 | * Limit 1 -> First 1 26 | 27 | ## indexes 28 | 29 | https://stackoverflow.com/questions/14383503/on-duplicate-key-update-same-as-insert 30 | 31 | ## Setup server 32 | 33 | 34 | https://support.rackspace.com/how-to/installing-mysql-server-on-ubuntu/ 35 | https://www.techrepublic.com/article/how-to-set-up-mysql-for-remote-access-on-ubuntu-server-16-04/ 36 | 37 | sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf [mysqld] 38 | add-> sql_mode = "NO_ZERO_DATE" 39 | 40 | sudo nano /etc/mysql/my.cnf Comment out following lines: 41 | #bind-address = 127.0.0.1 42 | #skip-networking 43 | 44 | sudo service mysql restart 45 | 46 | ## make accessible from heidisql on windows host 47 | mysql -u root -p 48 | GRANT ALL ON demo_db_3.* to root@192.168.177.1 IDENTIFIED BY 'password'; 49 | FLUSH PRIVILEGES; 50 | use demo_db_3 51 | exit 52 | 53 | 54 | 55 | ? CREATE DATABASE demo_db_2; 56 | ? INSERT INTO mysql.user (User,Host,authentication_string,ssl_cipher,x509_issuer,x509_subject) 57 | ? FLUSH PRIVILEGES; 58 | ? SELECT User, Host, authentication_string FROM mysql.user; 59 | ? GRANT ALL PRIVILEGES ON demodb.* to demouser@localhost; 60 | -- ? GRANT ALL ON mysql.* TO 'demouser'@'192.168.177.1' IDENTIFIED BY '%u#098Tl3' WITH GRANT OPTION; 61 | ? GRANT ALL ON mysql.* TO 'root'@'192.168.177.1' IDENTIFIED BY 'password' WITH GRANT OPTION; 62 | ? GRANT ALL ON demo_db_2.* TO 'root'@'192.168.177.1' IDENTIFIED BY 'password' WITH GRANT OPTION; 63 | 64 | 65 | 66 | 67 | 68 | ## Quick tips for sql 69 | 70 | Let's see the list of locked tables mysql> show open tables where in_use>0; 71 | Let's see the list of the current processes, one of them is locking your table(s) mysql> show processlist; 72 | 4) Kill one of these processes mysql> kill ; 73 | 74 | 75 | ## debuggin procedures 76 | * https://dev.mysql.com/doc/refman/5.7/en/stored-routines.html - check comments 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | ## TODO 85 | 86 | * mysql documentation 87 | * fake_domains 88 | * simple translations 89 | 90 | -------------------------------------------------------------------------------- /doc/Todo/TodoOverview.md: -------------------------------------------------------------------------------- 1 | # Todo Overview, 2 | 3 | ## Ongoing 4 | * documentation 5 | 6 | ## WIP 7 | 8 | * 90% done - mysql driver 9 | * mssql driver 10 | 11 | 12 | ## Undocumented features ------------------------------------------------------Undocumented features 13 | * zx.dbu.sql_make_compatable(zx, 14 | * varx.code in db_fb_sql_gen.js:523 : execute statement st into -- allows sql procedure to be called as a function 15 | * compound_statement_debug 16 | 17 | ## TODO -----------------------------------------------------------TODO 18 | 19 | * use of Fix mysql generator table 20 | * /CREATE\s+SEQUENCE\s+([\w$]+)/i) - reconcile with getnerator - to reduce code 21 | * separate sql drivers into separate files? 22 | 23 | * make "Insert if not exiting" for INSERT INTO user_table_name (user_landing_page,user_display_field,user_name_field,user_password_field) values ('Home/Guest','Guest','user_guest_name','AnyPassword'); 24 | 25 | * Move FB to a new package or combine in main package? 26 | * FACE BOOK Procedures in facebook_model.quicc 27 | * FACE BOOK LOGIN 28 | 29 | * combine insertref table with dictionary table 30 | 31 | * check all triggers must be deleted to be updated? 32 | * switch pk between auto incement and uuid 33 | * use build_variable_passing instead of the page params for passing paramaters cuch as ?cond_proc? 34 | 35 | * use of backtic for ` field/table names - and " for firebird 36 | 37 | * Facebook login testing 38 | * UDF functions? 39 | * TRIGGER Z$SP_BI we increment by 1000 as we have sub procedures that are indexed relative to this index*/ 40 | * todo Z$TimeStamp_RANGE for mysql in extras_model.quic 41 | 42 | ## DEFER -----------------------------------------------------------DEFER 43 | * Apps with multiple DB drivers? 44 | 45 | 46 | ## SQL Translations -----------------------------------------------------------SQL Translations 47 | * fb "matching" translate to mysql 48 | * MAXDATE in expressions 49 | 50 | ## Documentation -----------------------------------------------------------Documentation 51 | 52 | 53 | ## Testing -----------------------------------------------------------Testing 54 | * Gallary does not reload after uploading a file - used to work 55 | * POP UP on todo reports 56 | 57 | ## Later -----------------------------------------------------------Later 58 | * postgresql driver 59 | MSsql driver 60 | 61 | ## Defer -----------------------------------------------------------Defer 62 | 63 | ## Done 64 | 65 | * fake_domains 66 | * simple translations 67 | * Split Z$RUN 68 | * INSERT MATCHING 69 | * GROUP_CONCAT 70 | * dialect Directive 71 | * dialect for alternate database specific code in one quicc source file. 72 | * Move database_default_config from config.json 73 | * recombine dark ui 74 | * recombine app changes 75 | * extras_model.quicc one standard file only 76 | * UPDATE OR INSERT INTO MAIL matching compatablilty 77 | * get config for db engines from alternate file - main config should be kept simple 78 | * remove driver dependant sql from GUI - or atleast use driver directive 79 | * create mysql db from blank 80 | * wtf search for : (fn.indexOf('SaleForm') - why such specific code? -removed -------------------------------------------------------------------------------- /doc/Elements.md: -------------------------------------------------------------------------------- 1 | #Elements (Element_widget.js) 2 | 3 | Elements are field level elements that can be free standing, or placed in a table, form or menu containers. 4 | each element corresponds to a database (table,record and field). 5 | 6 | An Element preforms one of four basic actions that operate on their field. 7 | * Link 8 | * Edit 9 | * Hide 10 | * Display (any other type) 11 | 12 | The four functions are augmented by styles for different situations like 13 | * Link 14 | * Button 15 | * Icon 16 | 17 | Button links can either be on a where clause or on the master_id record as passed 18 | wheremasterid="ID" 19 | Example: 20 | button () --{title:"Create new" glymph:"pencil-b" from=TODO_MVC wheremasterid="ID" form=popup_Edit_TODO_MVC} 21 | sql UPDATE OR INSERT INTO TODO_MVC (OWNER,NAME,STATUS,PARENT_ID) VALUES ( operator.id, 'New','', master.ID ) matching (OWNER,NAME) ; 22 | select first 1 ID from TODO_MVC where owner=operator.id and name='New' into :master_id; 23 | 24 | 25 | Elements are defined in quicc files Fields.quicc, Actions.quicc etc. 26 | element(name) 27 | MoustacheCode 28 | 29 | 30 | 31 | The name of the element is format 32 | substyle+Type+"Field"+Action+"HTMLTYPE" 33 | example LinkFieldLink_Main 34 | 35 | "Link" is the name 36 | "Field" is 37 | "Link" is the action type, refers to action types as defined in action_widget.js or others. 38 | "_Main" /"HTMLTYPE" is the sub HTML part, as required Element_widget.js - "Main","Div","Script" 39 | 40 | 41 | Depending on *_widget.js 42 | "Main", - This is the inner most HTML 43 | "Div", - This is the HTML div wrapper 44 | "Script" - This is produces js scripts for executing after the page has loaded 45 | 46 | 47 | 48 | 49 | # Hogan Moustache Code 50 | {{}} - Substituted at compile time with constant values such as qualia attributes. 51 | [[]] - Substituted at run time with live database values. 52 | 53 | 54 | {{field.f.xxx}} - gains access to the qualia attributes of the field 55 | {{pop}} nested container elements / widgets use {{pop}} for the inner / sub elements 56 | {{QryOffset}} -- index to the field number for the element 57 | inherit:xxxx -- inherit all settings from another defined element 58 | 59 | [[0]] - is the field id index 60 | 61 | # Debugging 62 | sql-mvc\output\elements.quicc - ouputs all available element styles 63 | 64 | # Qualia values reserved for specific purpose 65 | Currently part of user interface 1: 66 | 67 | #Table level 68 | 69 | * pagination 70 | * Title 71 | 72 | 73 | #Table field level 74 | 75 | ##Action: 76 | 77 | * View 78 | * Edit 79 | 80 | 81 | ##Type: 82 | 83 | * View 84 | * Hide 85 | * Text 86 | * Link 87 | * Pick 88 | * Gallery 89 | 90 | 91 | 92 | ##Link Styles 93 | 94 | * Link 95 | * Button 96 | * Icon 97 | 98 | ##Qualia 99 | 100 | * size 101 | * width 102 | * y 103 | * placeholder 104 | * autosave 105 | * List 106 | 107 | 108 | ##substyle: 109 | 110 | * Box (width=, y=) 111 | * Lookup (List=) 112 | * Radio (List=) 113 | * Pick (List=) 114 | * Datepicker 115 | * Datetimepicker 116 | * Slider (min=, max=, step=, pxwidth=, orientation) 117 | * Upload (width=, height=) 118 | * Hide 119 | 120 | -------------------------------------------------------------------------------- /doc/Install-git.md: -------------------------------------------------------------------------------- 1 | 2 | #Linux from GIT for platform development (ubuntu 14): 3 | **Instructions for other OS'es to follow - but you get the idea.** 4 | [Install-windows here](https://github.com/quale-quest/sql-mvc/blob/master/Install-windows.md) 5 | 6 | 7 | sudo su # if you are not already root 8 | 9 | #basics 10 | ``` 11 | apt-get update 12 | apt-get upgrade 13 | apt-get install -y build-essential sudo curl git nano unzip tcl python 14 | apt-get install -y fail2ban 15 | ``` 16 | 17 | #database servers 18 | ##Firebird 19 | ``` 20 | apt-get install -y firebird2.5-classic firebird-dev **just press enter on the password prompt** 21 | service firebird2.5-classic start 22 | ``` 23 | 24 | ##Redis 25 | ``` 26 | [#ref:](https://www.digitalocean.com/community/tutorials/how-to-install-and-use-redis) 27 | wget http://download.redis.io/releases/redis-2.8.9.tar.gz 28 | tar xzf redis* 29 | cd redis* 30 | make & make install **press enter on pause after hint** 31 | cd ~ 32 | ``` 33 | 34 | #node.js 35 | ``` 36 | curl -sL https://deb.nodesource.com/setup | sudo bash - 37 | apt-get install -y nodejs 38 | sudo npm cache clean -f 39 | sudo npm install -g n 40 | sudo n latest 41 | npm install -g node-gyp 42 | npm install -g socketstream 43 | npm install -g forever 44 | ``` 45 | 46 | #sql-mvc from GIT - to develop in the platform directly (for contributions) 47 | 48 | ``` 49 | git clone https://github.com/quale-quest/sql-mvc.git 50 | cd sql-mvc 51 | npm install 52 | 53 | #the default config will: 54 | # place the database in /var/db 55 | # attempt to update the current database 56 | # run dev server on port 3000 57 | # to edit the default config : 58 | nano ../Quale/Config/config.json 59 | 60 | #now build the demo 61 | chmod -R +x server/compiler/*.sh 62 | chmod -R +x install/*.sh 63 | cd install 64 | ./patch.sh 65 | ./make_udf.sh 66 | 67 | ./make_app.sh 68 | ``` 69 | 70 | #start sql-mvc server in dev mode 71 | ``` 72 | cd .. 73 | bash dev_server.sh 74 | ``` 75 | #Enjoy 76 | Open our browser to localhost:3000 and view the demo app 77 | 78 | Edit and play with the demo page : sql-mvc/Quale/Standard/Home/Guest/Dashboard/Dashboard-Include.quicc 79 | the changes you make will automatically be updated to your browser. 80 | 81 | Error output will bve on the console running the ./dev_server.sh 82 | and also in the file: sql-mvc/server/compiler/output/error_log.json 83 | 84 | 85 | #Production 86 | This is not yet production ready, but FYI. 87 | edit ./run_web.sh (fixing the absolute path) 88 | edit crontab and add the line form install/crontab-e.md 89 | 90 | 91 | #Manuals 92 | Programmers Manual at https://github.com/quale-quest/sql-mvc/wiki 93 | 94 | 95 | #TODO / TO FOLLOW- Hot and Important 96 | * have errors displayed in a "dev" window on the browser in a more readable format 97 | * Tutorial 98 | * Documentation 99 | 100 | 101 | 102 | #Feedback 103 | Please let me know if this works.... 104 | 105 | Post messages to 106 | 107 | SQL-MVC help and discussion mailing list: https://groups.google.com/group/sql-mvc-talk 108 | 109 | Git hub https://github.com/quale-quest/sql-mvc 110 | or you can email me directly lafras@xietel.com 111 | 112 | 113 | Thanks 114 | 115 | 116 | -------------------------------------------------------------------------------- /client/static/others/qqui1/timepicker/jquery-ui-sliderAccess.js: -------------------------------------------------------------------------------- 1 | /* 2 | * jQuery UI Slider Access 3 | * By: Trent Richardson [http://trentrichardson.com] 4 | * Version 0.3 5 | * Last Modified: 10/20/2012 6 | * 7 | * Copyright 2011 Trent Richardson 8 | * Dual licensed under the MIT and GPL licenses. 9 | * http://trentrichardson.com/Impromptu/GPL-LICENSE.txt 10 | * http://trentrichardson.com/Impromptu/MIT-LICENSE.txt 11 | * 12 | */ 13 | (function($){ 14 | 15 | $.fn.extend({ 16 | sliderAccess: function(options){ 17 | options = options || {}; 18 | options.touchonly = options.touchonly !== undefined? options.touchonly : true; // by default only show it if touch device 19 | 20 | if(options.touchonly === true && !("ontouchend" in document)){ 21 | return $(this); 22 | } 23 | 24 | return $(this).each(function(i,obj){ 25 | var $t = $(this), 26 | o = $.extend({},{ 27 | where: 'after', 28 | step: $t.slider('option','step'), 29 | upIcon: 'ui-icon-plus', 30 | downIcon: 'ui-icon-minus', 31 | text: false, 32 | upText: '+', 33 | downText: '-', 34 | buttonset: true, 35 | buttonsetTag: 'span', 36 | isRTL: false 37 | }, options), 38 | $buttons = $('<'+ o.buttonsetTag +' class="ui-slider-access">'+ 39 | ''+ 40 | ''+ 41 | ''); 42 | 43 | $buttons.children('button').each(function(j, jobj){ 44 | var $jt = $(this); 45 | $jt.button({ 46 | text: o.text, 47 | icons: { primary: $jt.data('icon') } 48 | }) 49 | .click(function(e){ 50 | var step = $jt.data('step'), 51 | curr = $t.slider('value'), 52 | newval = curr += step*1, 53 | minval = $t.slider('option','min'), 54 | maxval = $t.slider('option','max'), 55 | slidee = $t.slider("option", "slide") || function(){}, 56 | stope = $t.slider("option", "stop") || function(){}; 57 | 58 | e.preventDefault(); 59 | 60 | if(newval < minval || newval > maxval){ 61 | return; 62 | } 63 | 64 | $t.slider('value', newval); 65 | 66 | slidee.call($t, null, { value: newval }); 67 | stope.call($t, null, { value: newval }); 68 | }); 69 | }); 70 | 71 | // before or after 72 | $t[o.where]($buttons); 73 | 74 | if(o.buttonset){ 75 | $buttons.removeClass('ui-corner-right').removeClass('ui-corner-left').buttonset(); 76 | $buttons.eq(0).addClass('ui-corner-left'); 77 | $buttons.eq(1).addClass('ui-corner-right'); 78 | } 79 | 80 | // adjust the width so we don't break the original layout 81 | var bOuterWidth = $buttons.css({ 82 | marginLeft: ((o.where === 'after' && !o.isRTL) || (o.where === 'before' && o.isRTL)? 10:0), 83 | marginRight: ((o.where === 'before' && !o.isRTL) || (o.where === 'after' && o.isRTL)? 10:0) 84 | }).outerWidth(true) + 5; 85 | var tOuterWidth = $t.outerWidth(true); 86 | $t.css('display','inline-block').width(tOuterWidth-bOuterWidth); 87 | }); 88 | } 89 | }); 90 | 91 | })(jQuery); --------------------------------------------------------------------------------