diff --git a/app/Http/Controllers/Transaction/EditController.php b/app/Http/Controllers/Transaction/EditController.php index 1945f8ea7d..91dff1c221 100644 --- a/app/Http/Controllers/Transaction/EditController.php +++ b/app/Http/Controllers/Transaction/EditController.php @@ -106,7 +106,7 @@ class EditController extends Controller $optionalFields['location'] ??= false; $optionalFields['location'] = $optionalFields['location'] && true === config('firefly.enable_external_map'); - // map info: + // map info voor v2: $longitude = config('firefly.default_location.longitude'); $latitude = config('firefly.default_location.latitude'); $zoomLevel = config('firefly.default_location.zoom_level'); diff --git a/config/search.php b/config/search.php index dbbfce291e..021da929f3 100644 --- a/config/search.php +++ b/config/search.php @@ -132,6 +132,7 @@ return [ 'has_any_tag' => ['alias' => false, 'needs_context' => false], 'any_notes' => ['alias' => false, 'needs_context' => false], 'has_any_notes' => ['alias' => true, 'alias_for' => 'any_notes', 'needs_context' => false], + 'has_notes' => ['alias' => true, 'alias_for' => 'any_notes', 'needs_context' => false], 'any_external_url' => ['alias' => false, 'needs_context' => false], 'has_any_external_url' => ['alias' => true, 'alias_for' => 'any_external_url', 'needs_context' => false], 'has_no_attachments' => ['alias' => false, 'needs_context' => false], diff --git a/public/build/assets/edit-6247ff45.js b/public/build/assets/edit-6247ff45.js deleted file mode 100644 index 444f0366c1..0000000000 --- a/public/build/assets/edit-6247ff45.js +++ /dev/null @@ -1 +0,0 @@ -import{d as m,f as l,g as p,l as h}from"./get-c53daca3.js";import{f,l as _,I as y}from"./vendor-4332182f.js";import{G as b}from"./get-c2292133.js";import{e as w,f as r,g as v,s as C,h as S,i as A,l as D,a as x,b as L,c as B,j as k,k as c,m as d}from"./autocomplete-functions-31caaca5.js";function E(e){let o=[];for(let a in e)if(e.hasOwnProperty(a)){let t=e[a],n=w();n.bill_id=t.bill_id,n.budget_id=t.budget_id,n.category_name=t.category_name,n.piggy_bank_id=t.piggy_bank_id,n.book_date=t.book_date,n.due_date=t.due_date,n.interest_date=t.interest_date,n.invoice_date=t.invoice_date,n.payment_date=t.payment_date,n.process_date=t.process_date,n.external_url=t.external_url,n.internal_reference=t.internal_reference,n.notes=t.notes,n.tags=t.tags,n.amount=parseFloat(t.amount).toFixed(t.currency_decimal_places),n.currency_code=t.currency_code,t.foreign_amount!==null&&(n.forein_currency_code=t.foreign_currency_code,n.foreign_amount=parseFloat(t.foreign_amount).toFixed(t.foreign_currency_decimal_places)),n.date=f(new Date(t.date),"yyyy-MM-dd HH:mm"),n.description=t.description,n.destination_account={id:t.destination_id,name:t.destination_name,alpine_name:t.destination_name},n.source_account={id:t.source_id,name:t.source_name,alpine_name:t.source_name},t.latitude!==null&&(n.hasLocation=!0,n.latitude=t.latitude,n.longitude=t.longitude,n.zoomLevel=t.zoom_level),console.log("download:"),console.log(t),console.log("current:"),console.log(n),o.push(n)}return o}let i;const s=k();let P=function(){return{entries:[],formStates:{loadingCurrencies:!0,loadingBudgets:!0,loadingPiggyBanks:!0,loadingSubscriptions:!0,isSubmitting:!1,returnHereButton:!1,saveAsNewButton:!1,resetButton:!0,rulesButton:!0,webhooksButton:!0},formBehaviour:{formType:"create",foreignCurrencyEnabled:!0},formData:{defaultCurrency:null,enabledCurrencies:[],nativeCurrencies:[],foreignCurrencies:[],budgets:[],piggyBanks:[],subscriptions:[]},groupProperties:{transactionType:"unknown",title:null,id:null,totalAmount:0},notifications:{error:{show:!1,text:"",url:""},success:{show:!1,text:"",url:""},wait:{show:!1,text:""}},filters:{source:[],destination:[]},addedSplit(){setTimeout(()=>{const e=function(o,a,t){return o.name_with_balance+'
'+i.t("firefly.account_type_"+o.type)+""};r({selector:"input.ac-source",serverUrl:s.account,filters:this.filters.source,onRenderItem:e,onChange:v,onSelectItem:C}),console.log("ok"),console.log(this.entries[0].source_account.alpine_name),r({selector:"input.ac-dest",serverUrl:s.account,filters:this.filters.destination,onRenderItem:e,onChange:S,onSelectItem:A}),r({selector:"input.ac-category",serverUrl:s.category,valueField:"id",labelField:"name",onChange:c,onSelectItem:c}),r({selector:"input.ac-description",serverUrl:s.description,valueField:"id",labelField:"description",onChange:d,onSelectItem:d})},250)},changedDateTime(e){console.warn("changedDateTime, event is not used")},changedDescription(e){console.warn("changedDescription, event is not used")},changedDestinationAccount(e){console.warn("changedDestinationAccount, event is not used")},changedSourceAccount(e){console.warn("changedSourceAccount, event is not used")},formattedTotalAmount(){return this.entries.length===0?l(this.groupProperties.totalAmount,"EUR"):l(this.groupProperties.totalAmount,this.entries[0].currency_code??"EUR")},getTransactionGroup(){const e=window.location.href.split("/"),o=parseInt(e[e.length-1]);new b().show(o,{}).then(t=>{const n=t.data.data;this.groupProperties.id=parseInt(n.id),this.groupProperties.transactionType=n.attributes.transactions[0].type,this.groupProperties.title=n.attributes.title??n.attributes.transactions[0].description,this.entries=E(n.attributes.transactions),this.notifications.wait.show=!1}).then(()=>{setTimeout(()=>{_.init("select.ac-tags",{allowClear:!0,selected:[{label:"Bla bla",value:1,selected:!0}]})},250)})},init(){Promise.all([p("language","en_US")]).then(e=>{i=new y;const o=e[0].replace("-","_");i.locale=o,h(i,o).then(()=>{this.notifications.wait.show=!0,this.notifications.wait.text=i.t("firefly.wait_loading_transaction"),this.getTransactionGroup()})}),D().then(e=>{this.formStates.loadingCurrencies=!1,this.formData.defaultCurrency=e.defaultCurrency,this.formData.enabledCurrencies=e.enabledCurrencies,this.formData.nativeCurrencies=e.nativeCurrencies,this.formData.foreignCurrencies=e.foreignCurrencies}),x().then(e=>{this.formData.budgets=e,this.formStates.loadingBudgets=!1}),L().then(e=>{this.formData.piggyBanks=e,this.formStates.loadingPiggyBanks=!1}),B().then(e=>{this.formData.subscriptions=e,this.formStates.loadingSubscriptions=!1}),document.addEventListener("upload-success",e=>{this.processUpload(e),document.querySelectorAll("input[type=file]").value=""}),document.addEventListener("upload-error",e=>{this.processUploadError(e)}),document.addEventListener("location-move",e=>{this.entries[e.detail.index].latitude=e.detail.latitude,this.entries[e.detail.index].longitude=e.detail.longitude}),document.addEventListener("location-set",e=>{this.entries[e.detail.index].hasLocation=!0,this.entries[e.detail.index].latitude=e.detail.latitude,this.entries[e.detail.index].longitude=e.detail.longitude,this.entries[e.detail.index].zoomLevel=e.detail.zoomLevel}),document.addEventListener("location-zoom",e=>{this.entries[e.detail.index].hasLocation=!0,this.entries[e.detail.index].zoomLevel=e.detail.zoomLevel})}}},u={transactions:P,dates:m};function g(){Object.keys(u).forEach(e=>{console.log(`Loading page component "${e}"`);let o=u[e]();Alpine.data(e,()=>o)}),Alpine.start()}document.addEventListener("firefly-iii-bootstrapped",()=>{console.log("Loaded through event listener."),g()});window.bootstrapped&&(console.log("Loaded through window variable."),g()); diff --git a/public/build/assets/edit-9f80420b.js b/public/build/assets/edit-9f80420b.js new file mode 100644 index 0000000000..974f543643 --- /dev/null +++ b/public/build/assets/edit-9f80420b.js @@ -0,0 +1 @@ +import{d as h,f as l,g as p,l as m}from"./get-c53daca3.js";import{f,l as _,I as y}from"./vendor-4332182f.js";import{G as b}from"./get-c2292133.js";import{e as w,f as r,g as v,s as A,h as S,i as C,l as P,a as D,b as x,c as L,j as k,k as c,m as u}from"./autocomplete-functions-31caaca5.js";function B(e){let o=[];for(let i in e)if(e.hasOwnProperty(i)){let t=e[i],n=w();n.bill_id=t.bill_id,n.budget_id=t.budget_id,n.category_name=t.category_name,n.piggy_bank_id=t.piggy_bank_id,n.book_date=t.book_date,n.due_date=t.due_date,n.interest_date=t.interest_date,n.invoice_date=t.invoice_date,n.payment_date=t.payment_date,n.process_date=t.process_date,n.external_url=t.external_url,n.internal_reference=t.internal_reference,n.notes=t.notes,n.tags=t.tags,n.amount=parseFloat(t.amount).toFixed(t.currency_decimal_places),n.currency_code=t.currency_code,t.foreign_amount!==null&&(n.forein_currency_code=t.foreign_currency_code,n.foreign_amount=parseFloat(t.foreign_amount).toFixed(t.foreign_currency_decimal_places)),n.date=f(new Date(t.date),"yyyy-MM-dd HH:mm"),n.description=t.description,n.destination_account={id:t.destination_id,name:t.destination_name,type:t.destination_type,alpine_name:t.destination_name},n.source_account={id:t.source_id,name:t.source_name,type:t.source_type,alpine_name:t.source_name},t.latitude!==null&&(n.hasLocation=!0,n.latitude=t.latitude,n.longitude=t.longitude,n.zoomLevel=t.zoom_level),console.log(n.tags),o.push(n)}return o}let s;const a=k();let E=function(){return{entries:[],formStates:{loadingCurrencies:!0,loadingBudgets:!0,loadingPiggyBanks:!0,loadingSubscriptions:!0,isSubmitting:!1,returnHereButton:!1,saveAsNewButton:!1,resetButton:!0,rulesButton:!0,webhooksButton:!0},formBehaviour:{formType:"edit",foreignCurrencyEnabled:!0},formData:{defaultCurrency:null,enabledCurrencies:[],nativeCurrencies:[],foreignCurrencies:[],budgets:[],piggyBanks:[],subscriptions:[]},groupProperties:{transactionType:"unknown",title:null,id:null,totalAmount:0},notifications:{error:{show:!1,text:"",url:""},success:{show:!1,text:"",url:""},wait:{show:!1,text:""}},filters:{source:[],destination:[]},addedSplit(){setTimeout(()=>{const e=function(o,i,t){return o.name_with_balance+'
'+s.t("firefly.account_type_"+o.type)+""};r({selector:"input.ac-source",serverUrl:a.account,filters:this.filters.source,onRenderItem:e,onChange:v,onSelectItem:A}),console.log("ok"),console.log(this.entries[0].source_account.alpine_name),r({selector:"input.ac-dest",serverUrl:a.account,filters:this.filters.destination,onRenderItem:e,onChange:S,onSelectItem:C}),r({selector:"input.ac-category",serverUrl:a.category,valueField:"id",labelField:"name",onChange:c,onSelectItem:c}),r({selector:"input.ac-description",serverUrl:a.description,valueField:"id",labelField:"description",onChange:u,onSelectItem:u})},250)},changedDateTime(e){console.warn("changedDateTime, event is not used")},changedDescription(e){console.warn("changedDescription, event is not used")},changedDestinationAccount(e){console.warn("changedDestinationAccount, event is not used")},changedSourceAccount(e){console.warn("changedSourceAccount, event is not used")},formattedTotalAmount(){return this.entries.length===0?l(this.groupProperties.totalAmount,"EUR"):l(this.groupProperties.totalAmount,this.entries[0].currency_code??"EUR")},getTags(e){return console.log("at get tags "+e),console.log(this.entries[e].tags),this.entries[e].tags??[]},getTransactionGroup(){this.entries=[];const e=window.location.href.split("/"),o=parseInt(e[e.length-1]);new b().show(o,{}).then(t=>{const n=t.data.data;this.groupProperties.id=parseInt(n.id),this.groupProperties.transactionType=n.attributes.transactions[0].type,this.groupProperties.title=n.attributes.title??n.attributes.transactions[0].description,this.entries=B(n.attributes.transactions),this.notifications.wait.show=!1}).then(()=>{this.groupProperties.totalAmount=0;for(let t in this.entries)this.entries.hasOwnProperty(t)&&(this.groupProperties.totalAmount=this.groupProperties.totalAmount+parseFloat(this.entries[t].amount),this.filters.source.push(this.entries[t].source_account.type),this.filters.destination.push(this.entries[t].source_account.type));console.log(this.filters),setTimeout(()=>{_.init("select.ac-tags",{allowClear:!0,server:a.tag,liveServer:!0,clearEnd:!0,allowNew:!0,notFoundMessage:s.t("firefly.nothing_found"),noCache:!0,fetchOptions:{headers:{"X-CSRF-TOKEN":document.head.querySelector('meta[name="csrf-token"]').content}}})},150)})},init(){Promise.all([p("language","en_US")]).then(e=>{s=new y;const o=e[0].replace("-","_");s.locale=o,m(s,o).then(()=>{this.notifications.wait.show=!0,this.notifications.wait.text=s.t("firefly.wait_loading_transaction"),this.getTransactionGroup()})}),P().then(e=>{this.formStates.loadingCurrencies=!1,this.formData.defaultCurrency=e.defaultCurrency,this.formData.enabledCurrencies=e.enabledCurrencies,this.formData.nativeCurrencies=e.nativeCurrencies,this.formData.foreignCurrencies=e.foreignCurrencies}),D().then(e=>{this.formData.budgets=e,this.formStates.loadingBudgets=!1}),x().then(e=>{this.formData.piggyBanks=e,this.formStates.loadingPiggyBanks=!1}),L().then(e=>{this.formData.subscriptions=e,this.formStates.loadingSubscriptions=!1}),document.addEventListener("upload-success",e=>{this.processUpload(e),document.querySelectorAll("input[type=file]").value=""}),document.addEventListener("upload-error",e=>{this.processUploadError(e)}),document.addEventListener("location-move",e=>{this.entries[e.detail.index].latitude=e.detail.latitude,this.entries[e.detail.index].longitude=e.detail.longitude}),document.addEventListener("location-set",e=>{this.entries[e.detail.index].hasLocation=!0,this.entries[e.detail.index].latitude=e.detail.latitude,this.entries[e.detail.index].longitude=e.detail.longitude,this.entries[e.detail.index].zoomLevel=e.detail.zoomLevel}),document.addEventListener("location-zoom",e=>{this.entries[e.detail.index].hasLocation=!0,this.entries[e.detail.index].zoomLevel=e.detail.zoomLevel})},changedAmount(e){const o=parseInt(e.target.dataset.index);this.entries[o].amount=parseFloat(e.target.value),this.groupProperties.totalAmount=0;for(let i in this.entries)this.entries.hasOwnProperty(i)&&(this.groupProperties.totalAmount=this.groupProperties.totalAmount+parseFloat(this.entries[i].amount))}}},d={transactions:E,dates:h};function g(){Object.keys(d).forEach(e=>{console.log(`Loading page component "${e}"`);let o=d[e]();Alpine.data(e,()=>o)}),Alpine.start()}document.addEventListener("firefly-iii-bootstrapped",()=>{console.log("Loaded through event listener."),g()});window.bootstrapped&&(console.log("Loaded through window variable."),g()); diff --git a/public/build/manifest.json b/public/build/manifest.json index c04e4d5a26..546faf87ef 100644 --- a/public/build/manifest.json +++ b/public/build/manifest.json @@ -101,7 +101,7 @@ "integrity": "sha384-wA/Z8Z+hNOuOA5ZTX8ShykEkdtfxX6dBZFLmmYmanfuUYEeY427OaNi956vrN6cy" }, "resources/assets/v2/pages/transactions/edit.js": { - "file": "assets/edit-6247ff45.js", + "file": "assets/edit-9f80420b.js", "imports": [ "_get-c53daca3.js", "_vendor-4332182f.js", @@ -110,7 +110,7 @@ ], "isEntry": true, "src": "resources/assets/v2/pages/transactions/edit.js", - "integrity": "sha384-hJTbJsS4rExaV2BGHmiZ/J/nm8RicxSfwzr7TDUe/nwtYOm8gWtmNxrDrsmyzAqS" + "integrity": "sha384-aDpFfamLQtUwfrOIPa3rZYGluWoOFUl+/HT5HVFqxc2Qa78DCqiUGsw20xsnPH71" }, "resources/assets/v2/sass/app.scss": { "file": "assets/app-fb7b26ec.css", diff --git a/resources/assets/v2/pages/transactions/edit.js b/resources/assets/v2/pages/transactions/edit.js index 7680a12835..5cd83d1e46 100644 --- a/resources/assets/v2/pages/transactions/edit.js +++ b/resources/assets/v2/pages/transactions/edit.js @@ -57,7 +57,6 @@ let transactions = function () { // transactions are stored in "entries": entries: [], - // state of the form is stored in formState: formStates: { loadingCurrencies: true, @@ -74,7 +73,8 @@ let transactions = function () { // form behaviour during transaction formBehaviour: { - formType: 'create', foreignCurrencyEnabled: true, + formType: 'edit', + foreignCurrencyEnabled: true, }, // form data (except transactions) is stored in formData @@ -180,9 +180,14 @@ let transactions = function () { } return formatMoney(this.groupProperties.totalAmount, this.entries[0].currency_code ?? 'EUR'); }, - + getTags(index) { + console.log('at get tags ' + index); + console.log(this.entries[index].tags); + return this.entries[index].tags ?? []; + }, getTransactionGroup() { + this.entries = []; const page = window.location.href.split('/'); const groupId = parseInt(page[page.length - 1]); const getter = new Get(); @@ -192,34 +197,39 @@ let transactions = function () { this.groupProperties.transactionType = data.attributes.transactions[0].type; this.groupProperties.title = data.attributes.title ?? data.attributes.transactions[0].description; this.entries = parseDownloadedSplits(data.attributes.transactions); - //console.log(this.entries); // remove waiting thing. this.notifications.wait.show = false; }).then(() => { - + this.groupProperties.totalAmount = 0; + for (let i in this.entries) { + if (this.entries.hasOwnProperty(i)) { + this.groupProperties.totalAmount = this.groupProperties.totalAmount + parseFloat(this.entries[i].amount); + this.filters.source.push(this.entries[i].source_account.type); + this.filters.destination.push(this.entries[i].source_account.type); + } + } + console.log(this.filters); setTimeout(() => { // render tags: Tags.init('select.ac-tags', { allowClear: true, - // server: urls.tag, - // liveServer: true, - // clearEnd: true, - selected: [{label:'Bla bla',value:1,selected:true}], - //allowNew: true, - //notFoundMessage: i18n.t('firefly.nothing_found'), - // noCache: true, - // fetchOptions: { - // headers: { - // 'X-CSRF-TOKEN': document.head.querySelector('meta[name="csrf-token"]').content - // } - // } + server: urls.tag, + liveServer: true, + clearEnd: true, + allowNew: true, + notFoundMessage: i18n.t('firefly.nothing_found'), + noCache: true, + fetchOptions: { + headers: { + 'X-CSRF-TOKEN': document.head.querySelector('meta[name="csrf-token"]').content + } + } }); - }, 250); + }, 150); }); }, - init() { // download translations and get the transaction group. Promise.all([getVariable('language', 'en_US')]).then((values) => { @@ -282,6 +292,17 @@ let transactions = function () { this.entries[event.detail.index].zoomLevel = event.detail.zoomLevel; }); }, + + changedAmount(e) { + const index = parseInt(e.target.dataset.index); + this.entries[index].amount = parseFloat(e.target.value); + this.groupProperties.totalAmount = 0; + for (let i in this.entries) { + if (this.entries.hasOwnProperty(i)) { + this.groupProperties.totalAmount = this.groupProperties.totalAmount + parseFloat(this.entries[i].amount); + } + } + } } } diff --git a/resources/assets/v2/pages/transactions/shared/parse-downloaded-splits.js b/resources/assets/v2/pages/transactions/shared/parse-downloaded-splits.js index 091bb3c7c4..eacee32453 100644 --- a/resources/assets/v2/pages/transactions/shared/parse-downloaded-splits.js +++ b/resources/assets/v2/pages/transactions/shared/parse-downloaded-splits.js @@ -66,12 +66,14 @@ export function parseDownloadedSplits(downloads) { current.destination_account = { id: download.destination_id, name: download.destination_name, + type: download.destination_type, alpine_name: download.destination_name, }; current.source_account = { id: download.source_id, name: download.source_name, + type: download.source_type, alpine_name: download.source_name, }; @@ -87,10 +89,11 @@ export function parseDownloadedSplits(downloads) { // longitude: null // piggy_bank_id: null // zoomLevel: null - console.log('download:'); - console.log(download); - console.log('current:'); - console.log(current); + // console.log('download:'); + // console.log(download); + // console.log('current:'); + // console.log(current); + console.log(current.tags); returnArray.push(current); } } diff --git a/resources/views/v2/partials/form/transaction/tags.blade.php b/resources/views/v2/partials/form/transaction/tags.blade.php index 3dfe00f9ff..4f2a55b3bc 100644 --- a/resources/views/v2/partials/form/transaction/tags.blade.php +++ b/resources/views/v2/partials/form/transaction/tags.blade.php @@ -10,9 +10,6 @@ :name="'tags['+index+'][]'" multiple> -