├── .gitignore ├── README.md ├── gnucash_rest.wsgi ├── gnucash_rest ├── __init__.py └── gnucash_simple.py ├── swagger.yaml ├── tests.py └── www ├── css ├── bootstrap.css ├── bootstrap.css.map ├── bootstrap.min.css ├── bootstrap.min.css.map ├── gnucash.css └── loader.css ├── favicon.ico ├── fonts ├── glyphicons-halflings-regular.eot ├── glyphicons-halflings-regular.svg ├── glyphicons-halflings-regular.ttf ├── glyphicons-halflings-regular.woff └── glyphicons-halflings-regular.woff2 ├── img ├── glyphicons-halflings-white.png └── glyphicons-halflings.png ├── index.html ├── js ├── angular-animate.min.js ├── angular-route.min.js ├── angular-select2 │ ├── .bower.json │ ├── README.md │ ├── bower.json │ ├── dist │ │ ├── angular-select2.js │ │ └── angular-select2.min.js │ ├── package.json │ └── test-config.js ├── angular.min.js ├── app.js ├── controllers │ ├── account.js │ ├── bill.js │ ├── customer.js │ ├── invoice.js │ ├── report.js │ ├── session.js │ └── vendor.js ├── core │ ├── account.module.js │ ├── bill.module.js │ ├── core.module.js │ ├── customer.module.js │ ├── entry.module.js │ ├── invoice.module.js │ ├── session.module.js │ ├── transaction.module.js │ └── vendor.module.js ├── date.js ├── jquery │ ├── .bower.json │ ├── AUTHORS.txt │ ├── LICENSE.txt │ ├── README.md │ ├── bower.json │ ├── dist │ │ ├── jquery.js │ │ ├── jquery.min.js │ │ ├── jquery.min.map │ │ ├── jquery.slim.js │ │ ├── jquery.slim.min.js │ │ └── jquery.slim.min.map │ ├── external │ │ └── sizzle │ │ │ ├── LICENSE.txt │ │ │ └── dist │ │ │ ├── sizzle.js │ │ │ ├── sizzle.min.js │ │ │ └── sizzle.min.map │ └── src │ │ ├── ajax.js │ │ ├── ajax │ │ ├── jsonp.js │ │ ├── load.js │ │ ├── script.js │ │ ├── var │ │ │ ├── location.js │ │ │ ├── nonce.js │ │ │ └── rquery.js │ │ └── xhr.js │ │ ├── attributes.js │ │ ├── attributes │ │ ├── attr.js │ │ ├── classes.js │ │ ├── prop.js │ │ ├── support.js │ │ └── val.js │ │ ├── callbacks.js │ │ ├── core.js │ │ ├── core │ │ ├── DOMEval.js │ │ ├── access.js │ │ ├── camelCase.js │ │ ├── init.js │ │ ├── isAttached.js │ │ ├── nodeName.js │ │ ├── parseHTML.js │ │ ├── parseXML.js │ │ ├── ready-no-deferred.js │ │ ├── ready.js │ │ ├── readyException.js │ │ ├── stripAndCollapse.js │ │ ├── support.js │ │ ├── toType.js │ │ └── var │ │ │ └── rsingleTag.js │ │ ├── css.js │ │ ├── css │ │ ├── addGetHookIf.js │ │ ├── adjustCSS.js │ │ ├── curCSS.js │ │ ├── finalPropName.js │ │ ├── hiddenVisibleSelectors.js │ │ ├── showHide.js │ │ ├── support.js │ │ └── var │ │ │ ├── cssExpand.js │ │ │ ├── getStyles.js │ │ │ ├── isHiddenWithinTree.js │ │ │ ├── rboxStyle.js │ │ │ ├── rcustomProp.js │ │ │ ├── rnumnonpx.js │ │ │ └── swap.js │ │ ├── data.js │ │ ├── data │ │ ├── Data.js │ │ └── var │ │ │ ├── acceptData.js │ │ │ ├── dataPriv.js │ │ │ └── dataUser.js │ │ ├── deferred.js │ │ ├── deferred │ │ └── exceptionHook.js │ │ ├── deprecated.js │ │ ├── deprecated │ │ ├── ajax-event-alias.js │ │ └── event.js │ │ ├── dimensions.js │ │ ├── effects.js │ │ ├── effects │ │ ├── Tween.js │ │ └── animatedSelector.js │ │ ├── event.js │ │ ├── event │ │ ├── focusin.js │ │ ├── support.js │ │ └── trigger.js │ │ ├── exports │ │ ├── amd.js │ │ └── global.js │ │ ├── jquery.js │ │ ├── manipulation.js │ │ ├── manipulation │ │ ├── _evalUrl.js │ │ ├── buildFragment.js │ │ ├── getAll.js │ │ ├── setGlobalEval.js │ │ ├── support.js │ │ ├── var │ │ │ ├── rscriptType.js │ │ │ └── rtagName.js │ │ └── wrapMap.js │ │ ├── offset.js │ │ ├── queue.js │ │ ├── queue │ │ └── delay.js │ │ ├── selector-native.js │ │ ├── selector-sizzle.js │ │ ├── selector.js │ │ ├── serialize.js │ │ ├── traversing.js │ │ ├── traversing │ │ ├── findFilter.js │ │ └── var │ │ │ ├── dir.js │ │ │ ├── rneedsContext.js │ │ │ └── siblings.js │ │ ├── var │ │ ├── ObjectFunctionString.js │ │ ├── arr.js │ │ ├── class2type.js │ │ ├── document.js │ │ ├── documentElement.js │ │ ├── flat.js │ │ ├── fnToString.js │ │ ├── getProto.js │ │ ├── hasOwn.js │ │ ├── indexOf.js │ │ ├── isFunction.js │ │ ├── isWindow.js │ │ ├── pnum.js │ │ ├── push.js │ │ ├── rcheckableType.js │ │ ├── rcssNum.js │ │ ├── rnothtmlwhite.js │ │ ├── rtrimCSS.js │ │ ├── slice.js │ │ ├── support.js │ │ ├── toString.js │ │ └── whitespace.js │ │ └── wrap.js ├── ngStorage.js ├── select2 │ ├── .bower.json │ ├── .gitignore │ ├── CONTRIBUTING.md │ ├── LICENSE │ ├── README.md │ ├── bower.json │ ├── component.json │ ├── composer.json │ ├── package.json │ ├── release.sh │ ├── select2-bootstrap.css │ ├── select2-spinner.gif │ ├── select2.css │ ├── select2.jquery.json │ ├── select2.js │ ├── select2.min.js │ ├── select2.png │ ├── select2_locale_ar.js │ ├── select2_locale_az.js │ ├── select2_locale_bg.js │ ├── select2_locale_ca.js │ ├── select2_locale_cs.js │ ├── select2_locale_da.js │ ├── select2_locale_de.js │ ├── select2_locale_el.js │ ├── select2_locale_en.js.template │ ├── select2_locale_es.js │ ├── select2_locale_et.js │ ├── select2_locale_eu.js │ ├── select2_locale_fa.js │ ├── select2_locale_fi.js │ ├── select2_locale_fr.js │ ├── select2_locale_gl.js │ ├── select2_locale_he.js │ ├── select2_locale_hr.js │ ├── select2_locale_hu.js │ ├── select2_locale_id.js │ ├── select2_locale_is.js │ ├── select2_locale_it.js │ ├── select2_locale_ja.js │ ├── select2_locale_ka.js │ ├── select2_locale_ko.js │ ├── select2_locale_lt.js │ ├── select2_locale_lv.js │ ├── select2_locale_mk.js │ ├── select2_locale_ms.js │ ├── select2_locale_nb.js │ ├── select2_locale_nl.js │ ├── select2_locale_pl.js │ ├── select2_locale_pt-BR.js │ ├── select2_locale_pt-PT.js │ ├── select2_locale_ro.js │ ├── select2_locale_rs.js │ ├── select2_locale_ru.js │ ├── select2_locale_sk.js │ ├── select2_locale_sv.js │ ├── select2_locale_th.js │ ├── select2_locale_tr.js │ ├── select2_locale_ug-CN.js │ ├── select2_locale_uk.js │ ├── select2_locale_vi.js │ ├── select2_locale_zh-CN.js │ ├── select2_locale_zh-TW.js │ └── select2x2.png ├── ui-bootstrap.min.js └── utilities.js └── partials ├── accounts ├── detail.html ├── fragments │ ├── form.html │ └── transactionform.html └── index.html ├── bills ├── detail.html ├── fragments │ ├── entryform.html │ ├── form.html │ ├── payform.html │ ├── postform.html │ └── unpostform.html └── index.html ├── customers ├── detail.html ├── fragments │ └── form.html └── index.html ├── invoices ├── detail.html ├── fragments │ ├── entryform.html │ ├── form.html │ ├── payform.html │ ├── postform.html │ └── unpostform.html ├── index.html └── print.html ├── reports ├── income-statement.html └── index.html ├── session ├── delete.html └── fragments │ └── form.html └── vendors ├── detail.html ├── fragments └── form.html └── index.html /.gitignore: -------------------------------------------------------------------------------- 1 | __pycache__/ 2 | *.pyc 3 | *.pyo 4 | 5 | -------------------------------------------------------------------------------- /gnucash_rest.wsgi: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | import sys 3 | import logging 4 | 5 | # Log to stderr? 6 | logging.basicConfig(stream=sys.stderr) 7 | 8 | # Set python paths so the gnucash, gnucash_rest and gnucash_simple module can be found 9 | sys.path.insert(0,"/var/www/gnucash-rest") 10 | sys.path.insert(0,"/var/www/gnucash-rest/gnucash_rest") 11 | sys.path.insert(0,"/usr/local/lib/python3/dist-packages") 12 | 13 | # Load application via 14 | from gnucash_rest import app as application 15 | 16 | # Set variables 17 | #application.connection_string = '/home/wsgi/gnucash.gnucash' 18 | 19 | -------------------------------------------------------------------------------- /www/css/gnucash.css: -------------------------------------------------------------------------------- 1 | [ng-click], [data-ng-click], [x-ng-click] { 2 | cursor: pointer; 3 | } 4 | 5 | .modal-body { 6 | max-height: calc(100vh - 200px); 7 | overflow-y: auto; 8 | } 9 | 10 | .navbar .navbar-right { 11 | float: right; 12 | } 13 | 14 | .select2-container { 15 | padding: 0px; 16 | } 17 | 18 | .select2-container .select2-choice { 19 | height: 33px; 20 | padding-top: 3px; 21 | } -------------------------------------------------------------------------------- /www/css/loader.css: -------------------------------------------------------------------------------- 1 | /* https://github.com/lukehaas/css-loaders */ 2 | 3 | .loader, 4 | .loader:before, 5 | .loader:after { 6 | border-radius: 50%; 7 | width: 2.5em; 8 | height: 2.5em; 9 | -webkit-animation-fill-mode: both; 10 | animation-fill-mode: both; 11 | -webkit-animation: load7 1.8s infinite ease-in-out; 12 | animation: load7 1.8s infinite ease-in-out; 13 | } 14 | .loader { 15 | color: #000000; 16 | font-size: 10px; 17 | margin: 80px auto; 18 | position: relative; 19 | text-indent: -9999em; 20 | -webkit-transform: translateZ(0); 21 | -ms-transform: translateZ(0); 22 | transform: translateZ(0); 23 | -webkit-animation-delay: -0.16s; 24 | animation-delay: -0.16s; 25 | } 26 | .loader:before, 27 | .loader:after { 28 | content: ''; 29 | position: absolute; 30 | top: 0; 31 | } 32 | .loader:before { 33 | left: -3.5em; 34 | -webkit-animation-delay: -0.32s; 35 | animation-delay: -0.32s; 36 | } 37 | .loader:after { 38 | left: 3.5em; 39 | } 40 | @-webkit-keyframes load7 { 41 | 0%, 42 | 80%, 43 | 100% { 44 | box-shadow: 0 2.5em 0 -1.3em; 45 | } 46 | 40% { 47 | box-shadow: 0 2.5em 0 0; 48 | } 49 | } 50 | @keyframes load7 { 51 | 0%, 52 | 80%, 53 | 100% { 54 | box-shadow: 0 2.5em 0 -1.3em; 55 | } 56 | 40% { 57 | box-shadow: 0 2.5em 0 0; 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /www/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loftx/gnucash-rest/a426593f4b78c47b6a7faea91d4c0ce33814bbca/www/favicon.ico -------------------------------------------------------------------------------- /www/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loftx/gnucash-rest/a426593f4b78c47b6a7faea91d4c0ce33814bbca/www/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /www/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loftx/gnucash-rest/a426593f4b78c47b6a7faea91d4c0ce33814bbca/www/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /www/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loftx/gnucash-rest/a426593f4b78c47b6a7faea91d4c0ce33814bbca/www/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /www/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loftx/gnucash-rest/a426593f4b78c47b6a7faea91d4c0ce33814bbca/www/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /www/img/glyphicons-halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loftx/gnucash-rest/a426593f4b78c47b6a7faea91d4c0ce33814bbca/www/img/glyphicons-halflings-white.png -------------------------------------------------------------------------------- /www/img/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loftx/gnucash-rest/a426593f4b78c47b6a7faea91d4c0ce33814bbca/www/img/glyphicons-halflings.png -------------------------------------------------------------------------------- /www/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 |