diff --git a/frontend/package.json b/frontend/package.json index e51a831fd6..b43c4b45ee 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -21,9 +21,16 @@ "resolve-url-loader": "^3.1.2", "sass": "^1.32.8", "sass-loader": "^10.1.1", + "sortablejs": "^1.13.0", "vue": "^2.6.12", + "vue-chartjs": "^3.5.1", "vue-i18n": "^8.22.2", - "vue-template-compiler": "^2.6.12" + "vue-router": "^3.4.9", + "vue-simple-suggest": "^1.10.3", + "vue-template-compiler": "^2.6.12", + "vue-typeahead-bootstrap": "^2.5.5", + "vue2-leaflet": "^2.6.0", + "vuex": "^3.6.0" }, "dependencies": { "@fortawesome/fontawesome-free": "^5.15.1", @@ -39,12 +46,6 @@ "overlayscrollbars": "^1.13.1", "popper.js": "^1.16.1", "tempusdominus": "^5.16.0", - "v-calendar": "^2.2.4", - "vue-chartjs": "^3.5.1", - "vue-router": "^3.4.9", - "vue-simple-suggest": "^1.10.3", - "vue-typeahead-bootstrap": "^2.5.5", - "vue2-leaflet": "^2.6.0", - "vuex": "^3.6.0" + "v-calendar": "^2.2.4" } } diff --git a/frontend/src/components/accounts/Index.vue b/frontend/src/components/accounts/Index.vue index 09a31a2506..c95a5fb503 100644 --- a/frontend/src/components/accounts/Index.vue +++ b/frontend/src/components/accounts/Index.vue @@ -34,52 +34,17 @@
\n \n
\n{{ $t('list.name') }} | \n{{ $t('list.next_expected_match') }} | \n
---|---|
{{ bill.attributes.name }}\n (~ {{\n Intl.NumberFormat(locale, {style: 'currency', currency: bill.attributes.currency_code}).format((parseFloat(bill.attributes.amount_min) +\n parseFloat(bill.attributes.amount_max)) / -2)\n }})\n \n \n {{ bill.attributes.object_group_title }}\n \n | \n \n \n \n \n \n {{ new Intl.DateTimeFormat(locale, {year: 'numeric', month: 'long', day: 'numeric'}).format(new Date(payDate)) }} \n \n | \n
{{ entry.name }} | \n\n 0\" class=\"progress\">\n \n \n 20\">\n {{ Intl.NumberFormat(locale, {style: 'currency', currency: entry.currency_code}).format(entry.difference_float) }}\n \n \n \n {{ Intl.NumberFormat(locale, {style: 'currency', currency: entry.currency_code}).format(entry.difference_float) }}\n \n | \n
{{ entry.name }} | \n\n 0\" class=\"progress\">\n \n \n 20\">\n {{ Intl.NumberFormat(locale, {style: 'currency', currency: entry.currency_code}).format(entry.difference_float) }}\n \n \n \n {{ Intl.NumberFormat(locale, {style: 'currency', currency: entry.currency_code}).format(entry.difference_float) }}\n \n | \n
{{ $t('list.piggy_bank') }} | \n{{ $t('list.percentage') }} / {{ $t('list.amount') }} | \n
---|---|
\n {{ piggy.attributes.name }}\n \n \n {{ piggy.attributes.object_group_title }}\n \n | \n \n \n \n \n {{\n Intl.NumberFormat(locale, {style: 'currency', currency: piggy.attributes.currency_code}).format(piggy.attributes.current_amount)\n }}\n \n of\n {{\n Intl.NumberFormat(locale, {\n style: 'currency',\n currency: piggy.attributes.currency_code\n }).format(piggy.attributes.target_amount)\n }}\n \n \n \n \n | \n
{{ $t('firefly.description') }} | \n{{ $t('firefly.opposing_account') }} | \n{{ $t('firefly.amount') }} | \n{{ $t('firefly.category') }} | \n{{ $t('firefly.budget') }} | \n
---|---|---|---|---|
\n \n 1\">{{ transaction.attributes.group_title }}\n {{ transaction.attributes.transactions[0].description }}\n \n | \n\n \n {{ tr.destination_name }}\n {{ tr.source_name }}\n {{ tr.destination_name }}\n {{ tr.source_name }}\n \n \n | \n \n \n \n {{ Intl.NumberFormat(locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount * -1) }} \n \n \n {{ Intl.NumberFormat(locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount) }} \n \n \n {{ Intl.NumberFormat(locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount * -1) }} \n \n \n {{ Intl.NumberFormat(locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount) }} \n \n \n | \n \n \n {{ tr.category_name }} \n \n | \n \n \n {{ tr.budget_name }} \n \n | \n
{{ $t('firefly.description') }} | \n{{ $t('firefly.opposing_account') }} | \n{{ $t('firefly.amount') }} | \n
---|---|---|
\n \n 1\">{{ transaction.attributes.group_title }}\n {{ transaction.attributes.transactions[0].description }}\n \n | \n\n \n {{ tr.destination_name }}\n {{ tr.source_name }}\n {{ tr.destination_name }}\n {{ tr.source_name }}\n \n \n | \n \n \n \n {{ Intl.NumberFormat(locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount * -1) }} \n \n \n {{ Intl.NumberFormat(locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount) }} \n \n \n {{ Intl.NumberFormat(locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount * -1) }} \n \n \n {{ Intl.NumberFormat(locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount) }} \n \n \n | \n
{{ $t('firefly.description') }} | \n{{ $t('firefly.amount') }} | \n
---|---|
\n \n 1\">{{ transaction.attributes.group_title }}\n {{ transaction.attributes.transactions[0].description }}\n \n | \n\n \n \n {{ Intl.NumberFormat(locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount * -1) }} \n \n \n {{ Intl.NumberFormat(locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount) }} \n \n \n {{ Intl.NumberFormat(locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount * -1) }} \n \n \n {{ Intl.NumberFormat(locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount) }} \n \n \n | \n
\n {{ category.name }}\n | \n\n \n 0\" class=\"progress\">\n \n\n \n \n 20\">\n {{ Intl.NumberFormat(locale, {style: 'currency', currency: category.currency_code}).format(category.spent) }}\n \n \n \n {{ Intl.NumberFormat(locale, {style: 'currency', currency: category.currency_code}).format(category.spent) }}\n \n\n 0\" class=\"progress justify-content-end\" title=\"hello2\">\n \n {{ Intl.NumberFormat(locale, {style: 'currency', currency: category.currency_code}).format(category.earned) }}\n \n \n\n \n 20\">\n {{ Intl.NumberFormat(locale, {style: 'currency', currency: category.currency_code}).format(category.earned) }}\n \n \n | \n
{{ $t('list.name') }} | \n{{ $t('list.next_expected_match') }} | \n
---|---|
{{ bill.attributes.name }}\n (~ {{\n Intl.NumberFormat(locale, {style: 'currency', currency: bill.attributes.currency_code}).format((parseFloat(bill.attributes.amount_min) +\n parseFloat(bill.attributes.amount_max)) / -2)\n }})\n \n \n {{ bill.attributes.object_group_title }}\n \n | \n \n \n \n \n \n {{ new Intl.DateTimeFormat(locale, {year: 'numeric', month: 'long', day: 'numeric'}).format(new Date(payDate)) }} \n \n | \n
{{ entry.name }} | \n\n 0\" class=\"progress\">\n \n \n 20\">\n {{ Intl.NumberFormat(locale, {style: 'currency', currency: entry.currency_code}).format(entry.difference_float) }}\n \n \n \n {{ Intl.NumberFormat(locale, {style: 'currency', currency: entry.currency_code}).format(entry.difference_float) }}\n \n | \n
{{ entry.name }} | \n\n 0\" class=\"progress\">\n \n \n 20\">\n {{ Intl.NumberFormat(locale, {style: 'currency', currency: entry.currency_code}).format(entry.difference_float) }}\n \n \n \n {{ Intl.NumberFormat(locale, {style: 'currency', currency: entry.currency_code}).format(entry.difference_float) }}\n \n | \n
{{ $t('list.piggy_bank') }} | \n{{ $t('list.percentage') }} / {{ $t('list.amount') }} | \n
---|---|
\n {{ piggy.attributes.name }}\n \n \n {{ piggy.attributes.object_group_title }}\n \n | \n \n \n \n \n {{\n Intl.NumberFormat(locale, {style: 'currency', currency: piggy.attributes.currency_code}).format(piggy.attributes.current_amount)\n }}\n \n of\n {{\n Intl.NumberFormat(locale, {\n style: 'currency',\n currency: piggy.attributes.currency_code\n }).format(piggy.attributes.target_amount)\n }}\n \n \n \n \n | \n
{{ $t('firefly.description') }} | \n{{ $t('firefly.opposing_account') }} | \n{{ $t('firefly.amount') }} | \n{{ $t('firefly.category') }} | \n{{ $t('firefly.budget') }} | \n
---|---|---|---|---|
\n \n 1\">{{ transaction.attributes.group_title }}\n {{ transaction.attributes.transactions[0].description }}\n \n | \n\n \n {{ tr.destination_name }}\n {{ tr.source_name }}\n {{ tr.destination_name }}\n {{ tr.source_name }}\n \n \n | \n \n \n \n {{ Intl.NumberFormat(locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount * -1) }} \n \n \n {{ Intl.NumberFormat(locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount) }} \n \n \n {{ Intl.NumberFormat(locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount * -1) }} \n \n \n {{ Intl.NumberFormat(locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount) }} \n \n \n | \n \n \n {{ tr.category_name }} \n \n | \n \n \n {{ tr.budget_name }} \n \n | \n
{{ $t('firefly.description') }} | \n{{ $t('firefly.opposing_account') }} | \n{{ $t('firefly.amount') }} | \n
---|---|---|
\n \n 1\">{{ transaction.attributes.group_title }}\n {{ transaction.attributes.transactions[0].description }}\n \n | \n\n \n {{ tr.destination_name }}\n {{ tr.source_name }}\n {{ tr.destination_name }}\n {{ tr.source_name }}\n \n \n | \n \n \n \n {{ Intl.NumberFormat(locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount * -1) }} \n \n \n {{ Intl.NumberFormat(locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount) }} \n \n \n {{ Intl.NumberFormat(locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount * -1) }} \n \n \n {{ Intl.NumberFormat(locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount) }} \n \n \n | \n
{{ $t('firefly.description') }} | \n{{ $t('firefly.amount') }} | \n
---|---|
\n \n 1\">{{ transaction.attributes.group_title }}\n {{ transaction.attributes.transactions[0].description }}\n \n | \n\n \n \n {{ Intl.NumberFormat(locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount * -1) }} \n \n \n {{ Intl.NumberFormat(locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount) }} \n \n \n {{ Intl.NumberFormat(locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount * -1) }} \n \n \n {{ Intl.NumberFormat(locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount) }} \n \n \n | \n
\n {{ category.name }}\n | \n\n \n 0\" class=\"progress\">\n \n\n \n \n 20\">\n {{ Intl.NumberFormat(locale, {style: 'currency', currency: category.currency_code}).format(category.spent) }}\n \n \n \n {{ Intl.NumberFormat(locale, {style: 'currency', currency: category.currency_code}).format(category.spent) }}\n \n\n 0\" class=\"progress justify-content-end\" title=\"hello2\">\n \n {{ Intl.NumberFormat(locale, {style: 'currency', currency: category.currency_code}).format(category.earned) }}\n \n \n\n \n 20\">\n {{ Intl.NumberFormat(locale, {style: 'currency', currency: category.currency_code}).format(category.earned) }}\n \n \n | \n
-1)i&&i.push(a);else if(u=ot(a),o=yt(d.appendChild(a),"script"),u&&bt(o),n)for(c=0;a=o[c++];)gt.test(a.type||"")&&n.push(a);return d}var kt=/^([^.]*)(?:\.(.+)|)/;function At(){return!0}function Mt(){return!1}function Tt(t,e){return t===function(){try{return y.activeElement}catch(t){}}()==("focus"===e)}function Lt(t,e,n,r,i,a){var o,s;if("object"==typeof e){for(s in"string"!=typeof n&&(r=r||n,n=void 0),e)Lt(t,s,n,r,e[s],a);return t}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Mt;else if(!i)return t;return 1===a&&(o=i,(i=function(t){return k().off(t),o.apply(this,arguments)}).guid=o.guid||(o.guid=k.guid++)),t.each((function(){k.event.add(this,e,i,r,n)}))}function Dt(t,e,n){n?(K.set(t,e,!1),k.event.add(t,e,{namespace:!1,handler:function(t){var r,i,a=K.get(this,e);if(1&t.isTrigger&&this[e]){if(a.length)(k.event.special[e]||{}).delegateType&&t.stopPropagation();else if(a=s.call(arguments),K.set(this,e,a),r=n(this,e),this[e](),a!==(i=K.get(this,e))||r?K.set(this,e,!1):i={},a!==i)return t.stopImmediatePropagation(),t.preventDefault(),i&&i.value}else a.length&&(K.set(this,e,{value:k.event.trigger(k.extend(a[0],k.Event.prototype),a.slice(1),this)}),t.stopImmediatePropagation())}})):void 0===K.get(t,e)&&k.event.add(t,e,At)}k.event={global:{},add:function(t,e,n,r,i){var a,o,s,l,u,c,d,h,f,p,m,_=K.get(t);if(G(t))for(n.handler&&(n=(a=n).handler,i=a.selector),i&&k.find.matchesSelector(at,i),n.guid||(n.guid=k.guid++),(l=_.events)||(l=_.events=Object.create(null)),(o=_.handle)||(o=_.handle=function(e){return void 0!==k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),u=(e=(e||"").match(H)||[""]).length;u--;)f=m=(s=kt.exec(e[u])||[])[1],p=(s[2]||"").split(".").sort(),f&&(d=k.event.special[f]||{},f=(i?d.delegateType:d.bindType)||f,d=k.event.special[f]||{},c=k.extend({type:f,origType:m,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:p.join(".")},a),(h=l[f])||((h=l[f]=[]).delegateCount=0,d.setup&&!1!==d.setup.call(t,r,p,o)||t.addEventListener&&t.addEventListener(f,o)),d.add&&(d.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?h.splice(h.delegateCount++,0,c):h.push(c),k.event.global[f]=!0)},remove:function(t,e,n,r,i){var a,o,s,l,u,c,d,h,f,p,m,_=K.hasData(t)&&K.get(t);if(_&&(l=_.events)){for(u=(e=(e||"").match(H)||[""]).length;u--;)if(f=m=(s=kt.exec(e[u])||[])[1],p=(s[2]||"").split(".").sort(),f){for(d=k.event.special[f]||{},h=l[f=(r?d.delegateType:d.bindType)||f]||[],s=s[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),o=a=h.length;a--;)c=h[a],!i&&m!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(h.splice(a,1),c.selector&&h.delegateCount--,d.remove&&d.remove.call(t,c));o&&!h.length&&(d.teardown&&!1!==d.teardown.call(t,p,_.handle)||k.removeEvent(t,f,_.handle),delete l[f])}else for(f in l)k.event.remove(t,f+e[u],n,r,!0);k.isEmptyObject(l)&&K.remove(t,"handle events")}},dispatch:function(t){var e,n,r,i,a,o,s=new Array(arguments.length),l=k.event.fix(t),u=(K.get(this,"events")||Object.create(null))[l.type]||[],c=k.event.special[l.type]||{};for(s[0]=l,e=1;e \n \n \n Use this form to search for transactions you wish to link to this one. When in doubt, use \n \n \n Use this form to search for transactions you wish to link to this one. When in doubt, use props\n href: String,\n target: String,\n //
\n \n
\n \n
\n \n
\n \n
\n \n
\n \n 0\" class=\"list-group\">\n
\n Transaction thing dialog.
\n \n id:*
where the ID is the number from\n the URL.\n 0\">Search results
\n 0\" class=\"table table-sm\">\n \n
\n \n \n \n \n Include? \n Transaction \n \n \n \n \n \n \n \n \n \n \n {{ result.description }}\n \n ({{\n Intl.NumberFormat(locale, {\n style: 'currency',\n currency: result.currency_code\n }).format(parseFloat(result.amount) * -1)\n }})\n \n \n ({{\n Intl.NumberFormat(locale, {\n style: 'currency',\n currency: result.currency_code\n }).format(parseFloat(result.amount))\n }})\n \n \n ({{\n Intl.NumberFormat(locale, {\n style: 'currency',\n currency: result.currency_code\n }).format(parseFloat(result.amount))\n }})\n \n \n
\n \n {{ result.source_name }}\n →\n {{ result.destination_name }}\n \n \n {{ $t('firefly.basic_journal_information') }}\n 1\">({{ index + 1 }} / {{ count }}) \n
\n \n {{ $t('firefly.transaction_journal_meta') }}\n 1\">({{ index + 1 }} / {{ count }}) \n
\n \n {{ $t('firefly.transaction_journal_extra') }}\n 1\">({{ index + 1 }} / {{ count }}) \n
\n \n \n \n {{ $t(\"firefly.flash_error\") }}\n {{ $t(\"firefly.flash_success\") }}\n
\n \n
\n \n\n props\n href: String,\n target: String,\n //
\n \n
\n \n
\n \n
\n \n
\n \n
\n \n 0\" class=\"list-group\">\n
\n Transaction thing dialog.
\n \n id:*
where the ID is the number from\n the URL.\n 0\">Search results
\n 0\" class=\"table table-sm\">\n \n
\n \n \n \n \n Include? \n Transaction \n \n \n \n \n \n \n \n \n \n \n {{ result.description }}\n \n ({{\n Intl.NumberFormat(locale, {\n style: 'currency',\n currency: result.currency_code\n }).format(parseFloat(result.amount) * -1)\n }})\n \n \n ({{\n Intl.NumberFormat(locale, {\n style: 'currency',\n currency: result.currency_code\n }).format(parseFloat(result.amount))\n }})\n \n \n ({{\n Intl.NumberFormat(locale, {\n style: 'currency',\n currency: result.currency_code\n }).format(parseFloat(result.amount))\n }})\n \n \n
\n \n {{ result.source_name }}\n →\n {{ result.destination_name }}\n \n \n {{ $t('firefly.basic_journal_information') }}\n 1\">({{ index + 1 }} / {{ count }}) \n
\n \n {{ $t('firefly.transaction_journal_meta') }}\n 1\">({{ index + 1 }} / {{ count }}) \n
\n \n {{ $t('firefly.transaction_journal_extra') }}\n 1\">({{ index + 1 }} / {{ count }}) \n
\n \n \n \n {{ $t(\"firefly.flash_error\") }}\n {{ $t(\"firefly.flash_success\") }}\n
\n \n
\n \n\n