From c033f2771216510b6956fa1c2b835d9aeef85357 Mon Sep 17 00:00:00 2001 From: hichri-louay <124356992+hichri-louay@users.noreply.github.com> Date: Wed, 20 Sep 2023 12:24:42 +0100 Subject: [PATCH 01/23] wip correction (#544) --- .../password-modal.component.ts | 20 +++++++++---------- .../remuneration/remuneration.component.html | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/app/campaigns/components/password-modal/password-modal.component.ts b/src/app/campaigns/components/password-modal/password-modal.component.ts index 73ce58cb1..4c521942d 100755 --- a/src/app/campaigns/components/password-modal/password-modal.component.ts +++ b/src/app/campaigns/components/password-modal/password-modal.component.ts @@ -318,7 +318,7 @@ let dateInSeconds = Math.floor(date.getTime() / 1000); map((response: any) => response.data), switchMap((response: any) => { this.passwordForm.reset(); - if ( + /*if ( new Big(response.allowance.amount).gt( new Big(this.campaign.initialBudget) ) @@ -330,7 +330,7 @@ let dateInSeconds = Math.floor(date.getTime() / 1000); // confirmationContent return this.launchCampaignWithPerPublicationReward(campaign_info); } - } + }*/ return this.campaignService .allowBEP20(TokenOBj, campaign_info.pass) @@ -361,7 +361,7 @@ let dateInSeconds = Math.floor(date.getTime() / 1000); map((response: any) => response.data), switchMap((response: any) => { this.passwordForm.reset(); - if ( + /*if ( new Big(response.allowance.amount).gt( new Big(this.campaign.initialBudget) ) @@ -373,7 +373,7 @@ let dateInSeconds = Math.floor(date.getTime() / 1000); // confirmationContent return this.launchCampaignWithPerPublicationReward(campaign_info); } - } + }*/ return this.campaignService .allowPOLYGON(TokenOBj, campaign_info.pass) @@ -408,7 +408,7 @@ let dateInSeconds = Math.floor(date.getTime() / 1000); map((response: any) => response.data), switchMap((response: any) => { this.passwordForm.reset(); - if ( + /*if ( new Big(response.allowance.amount).gt( new Big(this.campaign.initialBudget) ) @@ -420,7 +420,7 @@ let dateInSeconds = Math.floor(date.getTime() / 1000); // confirmationContent return this.launchCampaignWithPerPublicationReward(campaign_info); } - } + }*/ return this.campaignService .allowTRON(TokenOBj, campaign_info.pass) @@ -453,7 +453,7 @@ let dateInSeconds = Math.floor(date.getTime() / 1000); map((response: any) => response.data), switchMap((response: any) => { this.passwordForm.reset(); - if ( + /*if ( new Big(response.allowance.amount).gt( new Big(this.campaign.initialBudget) ) @@ -465,7 +465,7 @@ let dateInSeconds = Math.floor(date.getTime() / 1000); // confirmationContent return this.launchCampaignWithPerPublicationReward(campaign_info); } - } + }*/ return this.campaignService .allowBTT(TokenOBj, campaign_info.pass) @@ -497,7 +497,7 @@ let dateInSeconds = Math.floor(date.getTime() / 1000); .pipe( switchMap((response: any) => { this.passwordForm.reset(); - if ( + /*if ( new Big(response.data.allowance.amount).gt( new Big(this.campaign.initialBudget) ) @@ -511,7 +511,7 @@ let dateInSeconds = Math.floor(date.getTime() / 1000); campaign_info ); } - } + }*/ return this.campaignService .allowERC20(TokenOBj, campaign_info.pass) diff --git a/src/app/campaigns/components/remuneration/remuneration.component.html b/src/app/campaigns/components/remuneration/remuneration.component.html index 4c56877d9..1c465e280 100755 --- a/src/app/campaigns/components/remuneration/remuneration.component.html +++ b/src/app/campaigns/components/remuneration/remuneration.component.html @@ -273,7 +273,7 @@ -
+
From 906ca02defb97d77b89e067e74eafc4d04de1a8b Mon Sep 17 00:00:00 2001 From: hichri-louay <124356992+hichri-louay@users.noreply.github.com> Date: Wed, 20 Sep 2023 14:31:10 +0100 Subject: [PATCH 02/23] Issues draft campaign (#546) * wip add campaign smartcontract address * wip --- src/app/campaigns/campaigns-routing.module.ts | 19 ++++++++++++++++++- src/app/campaigns/campaigns.module.ts | 2 ++ .../notifications/notification.component.css | 10 +++++----- .../notifications/notification.component.ts | 7 ++++--- src/environments/environment.prod.ts | 2 +- 5 files changed, 30 insertions(+), 10 deletions(-) diff --git a/src/app/campaigns/campaigns-routing.module.ts b/src/app/campaigns/campaigns-routing.module.ts index 662898c42..611f50c13 100755 --- a/src/app/campaigns/campaigns-routing.module.ts +++ b/src/app/campaigns/campaigns-routing.module.ts @@ -12,6 +12,9 @@ import { TransactionMessageStatusComponent } from '@app/campaigns/components/tra import { CanLoadPublicModule } from '@core/services/public-pages-module.guard'; import { WelcomePageGuardService } from '@core/services/welcome-page-guard.service'; import { SocialsComponent } from './socials/socials.component'; +import { CampaignDetailComponent } from './campaign-details/components/campaign-detail/campaign-detail.component'; +import { RecoverGainsComponent } from './components/recover-gains/recover-gains.component'; +import { VerifyLinkComponent } from './components/verify-link/verify-link.component'; const routes: Routes = [ { @@ -35,12 +38,26 @@ const routes: Routes = [ ] }, { + path:'campaign/:id', + component: CampaignDetailComponent + }, + { + path: 'campaign/:id/verify-link', + component: VerifyLinkComponent, + canActivate: [AuthGuardService] + }, + { + path: 'campaign/:id/recover-my-gains', + component: RecoverGainsComponent, + canActivate: [AuthGuardService] + }, + /*{ path: 'campaign/:id', loadChildren: () => import('./campaign-details/campaign-details.module').then( (m) => m.CampaignDetailsModule ), - }, + },*/ { path: 'welcome', component: FarmWelcomeComponent diff --git a/src/app/campaigns/campaigns.module.ts b/src/app/campaigns/campaigns.module.ts index 2c907b1e7..28a2eafd4 100755 --- a/src/app/campaigns/campaigns.module.ts +++ b/src/app/campaigns/campaigns.module.ts @@ -35,6 +35,7 @@ import { DraftPictureComponent } from './components/draft-picture/draft-picture. import { CommonModule } from '@angular/common'; import { SocialsComponent } from './socials/socials.component'; import { SharedModule } from '@app/shared/shared.module'; +import { CampaignDetailsModule } from './campaign-details/campaign-details.module'; @NgModule({ declarations: [ CampaignsDashboardComponent, @@ -62,6 +63,7 @@ import { SharedModule } from '@app/shared/shared.module'; imports: [ CommonModule, CampaignsRoutingModule, + CampaignDetailsModule, CampaignsSharedUiModule, NgxTweetModule, EffectsModule.forFeature([LinksListEffects]), diff --git a/src/app/notifications/notification.component.css b/src/app/notifications/notification.component.css index 4a5810f1d..1abf2a242 100755 --- a/src/app/notifications/notification.component.css +++ b/src/app/notifications/notification.component.css @@ -349,7 +349,7 @@ input[type='search']::-webkit-search-cancel-button { .cmp-img2{ object-fit: cover; - width: 686px; + width: 100%; /* margin: 20px; */ height: 242px; border-top-left-radius: 30px 30px; @@ -645,12 +645,12 @@ input[type='date']::-webkit-calendar-picker-indicator { } - .cmp-img2.link{ + /*.cmp-img2.link{ width: 97.5vw !important; } .cmp-img2.camp{ width: 96vw !important; - } + }*/ .search-results{ margin-top: 10px !important; } @@ -658,11 +658,11 @@ input[type='date']::-webkit-calendar-picker-indicator { margin-top: -0.6em !important; } - .cmp-img2{ + /*.cmp-img2{ width: 97vw !important; - } + }*/ .container_perso { width: 84% !important; diff --git a/src/app/notifications/notification.component.ts b/src/app/notifications/notification.component.ts index 36a5c7794..f0c1e2998 100755 --- a/src/app/notifications/notification.component.ts +++ b/src/app/notifications/notification.component.ts @@ -983,13 +983,13 @@ closeModal(content: any) { // Construct the result string let result = ''; if (years > 0) { - result += `${years} y`; + result += `${years} y `; } if (months > 0) { - result += `${months} m`; + result += `${months} m `; } if (days > 0) { - result += `${days} d`; + result += `${days} d `; } if (remainingHours > 0) { result += `${remainingHours} h`; @@ -1722,6 +1722,7 @@ closeModal(content: any) { if (data.message === 'success') { this.closeModal(modal); this.showLoadingSpinner = false; + window.open(environment.domainName + '/notification') // this.influencerProms = this.influencerProms.pipe( // map((array: any) => diff --git a/src/environments/environment.prod.ts b/src/environments/environment.prod.ts index 6b9369354..9b09301a1 100755 --- a/src/environments/environment.prod.ts +++ b/src/environments/environment.prod.ts @@ -12,7 +12,7 @@ export const environment = { addresses: { smartContracts: { campaignERC20: '0xf961c85517fe86244cb60889afc4a928068d49ef', - campaignBEP20: '0x72A423c42FFCB9d2d9F65921Ea4Fe42725cC63b4', + campaignBEP20: '0x60c761e810b86fa3876ae065bdee62b8f2e29f86', campaignPOLYGON: '0xa01f80042512Cdf9355a66CBB1266240c0456513', campaignBTT: '0xa01f80042512Cdf9355a66CBB1266240c0456513', campaignTRON: 'TPeLf9WLzUD8tUoc7dtfGVqPUrnKGip2PN', From 31e4c9e70057cfe776e5174b905d4fe18c1a3ba6 Mon Sep 17 00:00:00 2001 From: hichri-louay <124356992+hichri-louay@users.noreply.github.com> Date: Wed, 20 Sep 2023 14:46:34 +0100 Subject: [PATCH 03/23] wip (#547) --- .../campaign-details/campaign-details-routing.module.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/campaigns/campaign-details/campaign-details-routing.module.ts b/src/app/campaigns/campaign-details/campaign-details-routing.module.ts index 3131043ef..3c46cab83 100755 --- a/src/app/campaigns/campaign-details/campaign-details-routing.module.ts +++ b/src/app/campaigns/campaign-details/campaign-details-routing.module.ts @@ -8,7 +8,7 @@ import { CampaignDetailsContainerComponent } from './components/campaign-details import { PublicPagesGuard } from '@core/services/public-pages.guard'; const routes: Routes = [ - { + /*{ path: '', component: CampaignDetailsContainerComponent, children: [ @@ -27,7 +27,7 @@ const routes: Routes = [ canActivate: [AuthGuardService] } ] - } + }*/ ]; @NgModule({ From ee76c082c1b8b95b86a625c0e8eb129baf74b7ed Mon Sep 17 00:00:00 2001 From: hichri-louay <124356992+hichri-louay@users.noreply.github.com> Date: Wed, 20 Sep 2023 14:57:24 +0100 Subject: [PATCH 04/23] remove css fonts prefetch (#548) --- src/index.html | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/index.html b/src/index.html index 6aa1d55b9..4843ae10b 100755 --- a/src/index.html +++ b/src/index.html @@ -77,12 +77,7 @@ href="https://fonts.googleapis.com/css?family=Raleway" rel="stylesheet" /> - - + Date: Wed, 20 Sep 2023 15:21:16 +0100 Subject: [PATCH 05/23] wip (#549) --- src/assets/fonts/Roboto-Regular.woff2 | Bin 64632 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100755 src/assets/fonts/Roboto-Regular.woff2 diff --git a/src/assets/fonts/Roboto-Regular.woff2 b/src/assets/fonts/Roboto-Regular.woff2 deleted file mode 100755 index 9a0064ec27e069931227a628e8ed899f3dda2c73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64632 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�%f$~?fkZC8G3n2!02 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 From 55f7047e2de0f022186a350d984d31b28ef9c54c Mon Sep 17 00:00:00 2001 From: hichri-louay <124356992+hichri-louay@users.noreply.github.com> Date: Fri, 22 Sep 2023 10:08:21 +0100 Subject: [PATCH 06/23] add _self for the redirection (#551) --- src/app/notifications/notification.component.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/notifications/notification.component.ts b/src/app/notifications/notification.component.ts index f0c1e2998..86f6b1a41 100755 --- a/src/app/notifications/notification.component.ts +++ b/src/app/notifications/notification.component.ts @@ -1722,7 +1722,7 @@ closeModal(content: any) { if (data.message === 'success') { this.closeModal(modal); this.showLoadingSpinner = false; - window.open(environment.domainName + '/notification') + window.open(environment.domainName + '/notification','_self') // this.influencerProms = this.influencerProms.pipe( // map((array: any) => From 0958c30622de321378de808667ec7d8f58861a70 Mon Sep 17 00:00:00 2001 From: hichri-louay <124356992+hichri-louay@users.noreply.github.com> Date: Fri, 22 Sep 2023 14:20:12 +0100 Subject: [PATCH 07/23] display v2 || v1 wallet with new logic (#552) --- .../authentication.component.ts | 6 +- .../core/services/Auth/auth-store.service.ts | 64 ++++++++++++------- 2 files changed, 45 insertions(+), 25 deletions(-) diff --git a/src/app/auth/components/authentication/authentication.component.ts b/src/app/auth/components/authentication/authentication.component.ts index ec8b4c501..c8f5abe68 100755 --- a/src/app/auth/components/authentication/authentication.component.ts +++ b/src/app/auth/components/authentication/authentication.component.ts @@ -440,7 +440,7 @@ getCookie(key: string){ return this.walletFacade.getUserWallet().pipe( map((myWallet: IResponseWallet) => { if (myWallet.data.totalBalance) - { this.tokenStorageService.setItem('wallet_version', 'v2'); + { //this.tokenStorageService.setItem('wallet_version', 'v2'); } // Return the object after logging myWallet @@ -780,7 +780,7 @@ getCookie(key: string){ return this.walletFacade.getUserWallet().pipe( map((myWallet: IResponseWallet) => { if (myWallet.data.totalBalance) - { this.tokenStorageService.setItem('wallet_version', 'v2'); + { //this.tokenStorageService.setItem('wallet_version', 'v2'); } // Return the object after logging myWallet @@ -796,7 +796,7 @@ getCookie(key: string){ return this.walletFacade.getUserWallet().pipe( map((myWallet: IResponseWallet) => { if (myWallet.data.totalBalance) - { this.tokenStorageService.setItem('wallet_version', 'v2'); + { //this.tokenStorageService.setItem('wallet_version', 'v2'); } // Return the object after logging myWallet diff --git a/src/app/core/services/Auth/auth-store.service.ts b/src/app/core/services/Auth/auth-store.service.ts index 3c204d4a7..bab363e1c 100755 --- a/src/app/core/services/Auth/auth-store.service.ts +++ b/src/app/core/services/Auth/auth-store.service.ts @@ -4,6 +4,7 @@ import { AuthService } from '@core/services/Auth/auth.service'; import { filter, tap } from 'rxjs/operators'; import { TokenStorageService } from '../tokenStorage/token-storage-service.service'; import { CryptofetchServiceService } from '../wallet/cryptofetch-service.service'; +import { WalletFacadeService } from '@app/core/facades/wallet-facade.service'; @Injectable({ providedIn: 'root' @@ -12,7 +13,8 @@ export class AuthStoreService { constructor( private auth: AuthService, private tokenStorageService: TokenStorageService, - private cryptofetchServiceService: CryptofetchServiceService + private cryptofetchServiceService: CryptofetchServiceService, + private walletFacade: WalletFacadeService, ) {} private _account: BehaviorSubject = new BehaviorSubject(null); @@ -27,31 +29,49 @@ export class AuthStoreService { public setAccount(account: any) { this._account.next(account); } - - async fetchBalance() { - try { - const balance: any = await this.cryptofetchServiceService - .getTotalBalanceV2() - .toPromise(); - const balanceV2 = balance.data.Total_balance; - return balanceV2; - } catch (error) { - console.error('Error fetching balance:', error); - } + async getWalletAddress() { + this.walletFacade + .getAllWallet() + .subscribe((data: any) => { + if(data.message === "success") { + if (this.tokenStorageService.getWalletVersion() === 'v2') { + this.tokenStorageService.saveIdWallet(data.data.addressV2); + this.tokenStorageService.saveTronWallet(data.data.tronAddressV2); + this.tokenStorageService.saveWalletBtc(data.data.btcAddressV2); + } else { + this.tokenStorageService.saveIdWallet(data.data.address); + this.tokenStorageService.saveTronWallet(data.data.tronAddress); + this.tokenStorageService.saveWalletBtc(data.data.btcAddress); + + + } + + } + }, (err:any) => { + console.error(err) + }); } + public getAccount() { return this.auth.verifyAccount().pipe( - tap(async (res) => { - const fetchedBalance = await this.fetchBalance(); - - const walletVersion = fetchedBalance === 0.0 - ? 'v1' - : 'v2'; - - this.tokenStorageService.setItem('wallet_version', walletVersion); - - this.setAccount(res); + tap(async (response) => { + const hasWalletV2 = response.data.hasWalletV2 || false + if(!!response.data.migrated && response.data.migrated) this.tokenStorageService.setItem('wallet_version', 'v2'); + else { + + await this.getWalletAddress(); + + this.cryptofetchServiceService.getTotalBalance().subscribe((res:any) => { + const balance = parseFloat(res.data.Total_balance) + + if(balance > 0) this.tokenStorageService.setItem('wallet_version', 'v1') + else hasWalletV2 ? this.tokenStorageService.setItem('wallet_version', 'v2') : this.tokenStorageService.setItem('wallet_version', 'v1') + }); + + } + + this.setAccount(response); }) ); } From f90d594b237591d10104275b62fae407983168cf Mon Sep 17 00:00:00 2001 From: hichri-louay <124356992+hichri-louay@users.noreply.github.com> Date: Mon, 25 Sep 2023 13:44:55 +0100 Subject: [PATCH 08/23] wip (#557) --- src/app/core/services/Auth/auth-store.service.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/app/core/services/Auth/auth-store.service.ts b/src/app/core/services/Auth/auth-store.service.ts index bab363e1c..98d733d10 100755 --- a/src/app/core/services/Auth/auth-store.service.ts +++ b/src/app/core/services/Auth/auth-store.service.ts @@ -29,7 +29,7 @@ export class AuthStoreService { public setAccount(account: any) { this._account.next(account); } - async getWalletAddress() { + /*async getWalletAddress() { this.walletFacade .getAllWallet() .subscribe((data: any) => { @@ -50,24 +50,24 @@ export class AuthStoreService { }, (err:any) => { console.error(err) }); - } + }*/ public getAccount() { return this.auth.verifyAccount().pipe( - tap(async (response) => { + tap( (response) => { const hasWalletV2 = response.data.hasWalletV2 || false if(!!response.data.migrated && response.data.migrated) this.tokenStorageService.setItem('wallet_version', 'v2'); else { - - await this.getWalletAddress(); + this.tokenStorageService.setItem('wallet_version', 'v1'); + - this.cryptofetchServiceService.getTotalBalance().subscribe((res:any) => { + /*this.cryptofetchServiceService.getTotalBalance().subscribe((res:any) => { const balance = parseFloat(res.data.Total_balance) if(balance > 0) this.tokenStorageService.setItem('wallet_version', 'v1') else hasWalletV2 ? this.tokenStorageService.setItem('wallet_version', 'v2') : this.tokenStorageService.setItem('wallet_version', 'v1') - }); + });*/ } From b46042379344072625af568cc2110b7b2330b744 Mon Sep 17 00:00:00 2001 From: skanderKha <124169513+skanderKha@users.noreply.github.com> Date: Mon, 25 Sep 2023 13:45:07 +0100 Subject: [PATCH 09/23] Sw 3653 adpool banner in french (#554) * refactor design of button in campaign page now the button and title and description are align and fit all the mobile devices , no change for web view * solving design when user choose fr language now there is no more probleme --------- Co-authored-by: root --- .../campaigns-dashboard.component.html | 2 +- .../campaigns-dashboard.component.scss | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/app/campaigns/components/campaigns-dashboard/campaigns-dashboard.component.html b/src/app/campaigns/components/campaigns-dashboard/campaigns-dashboard.component.html index fca651a55..cd9db015f 100755 --- a/src/app/campaigns/components/campaigns-dashboard/campaigns-dashboard.component.html +++ b/src/app/campaigns/components/campaigns-dashboard/campaigns-dashboard.component.html @@ -36,7 +36,7 @@
{{ 'Wallet_updated_Warning' | translate }}
-
+
diff --git a/src/app/campaigns/components/campaigns-dashboard/campaigns-dashboard.component.scss b/src/app/campaigns/components/campaigns-dashboard/campaigns-dashboard.component.scss index 9b752cdc3..f3ef90ab1 100755 --- a/src/app/campaigns/components/campaigns-dashboard/campaigns-dashboard.component.scss +++ b/src/app/campaigns/components/campaigns-dashboard/campaigns-dashboard.component.scss @@ -183,10 +183,11 @@ } .bloc-cover { margin-top: 43vh; - margin-left: 20%; + margin-left: 5%; } .title-cover { - left: 5%; + // width: 14em; + // left: 5%; font-weight: 700; font-size: 28px; line-height: 120%; @@ -199,8 +200,13 @@ line-height: 130%; padding-right: 10%; } + .button_container{ + width: fit-content; + margin: auto; + } .button-cover { - margin-top: 2.5% !important; + margin: auto; + margin-top: 1% !important; } @media only screen { From 84ef1818e10deddc89ad15a0d3ea9c69a7a2bb7d Mon Sep 17 00:00:00 2001 From: kachourihassen <60717797+kachourihassen@users.noreply.github.com> Date: Mon, 25 Sep 2023 13:45:26 +0100 Subject: [PATCH 10/23] Limit participation reached (#553) Co-authored-by: haythem --- .../components/participer/participer.component.ts | 14 ++++++++++++++ src/assets/i18n/en.json | 1 + src/assets/i18n/fr.json | 1 + 3 files changed, 16 insertions(+) diff --git a/src/app/campaigns/components/participer/participer.component.ts b/src/app/campaigns/components/participer/participer.component.ts index 8f32a3733..7b051eded 100755 --- a/src/app/campaigns/components/participer/participer.component.ts +++ b/src/app/campaigns/components/participer/participer.component.ts @@ -1598,6 +1598,15 @@ export class ParticiperComponent implements OnInit, AfterContentChecked { this.error = 'wallet not found'; this.success = ''; this.loadingButton = false; + } else if (error.error.code === 'Limit participation reached'){ + this.error = 'Limit_participation_reached'; + this.success = ''; + this.loadingButton = false; + this.router.navigate([], { + queryParams: { + errorMessage: 'error' + } + }); } } else { this.error = 'error-message'; @@ -1738,6 +1747,11 @@ export class ParticiperComponent implements OnInit, AfterContentChecked { this.error = 'Lien_déjà_envoyé'; this.success = ''; this.loadingButton = false; + } + else if (err.error.text === '{error:"Limit participation reached"}') { + this.error = 'Limit_participation_reached'; + this.success = ''; + this.loadingButton = false; } else if (err.error.text === '{error:"account not linked"}') { this.connectValue = 'facebook'; this.errorResponse = 'facebook'; diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json index ec55e3296..f4100ceb2 100755 --- a/src/assets/i18n/en.json +++ b/src/assets/i18n/en.json @@ -875,6 +875,7 @@ "invite_friends_notif": "Invite your friends", "problem_faq": "problem ? Consult the FAQ", "link_already_exist": "This link already exist please try with another one!", + "Limit_participation_reached":"Limit participation reached", "oracle_not_selected_error": "You are posting a link with a social media that is not supported by this campaign, please check your link before applying!", "welcome_title": "Welcome to Post Farming", "more_info": "More info about Ad Pool", diff --git a/src/assets/i18n/fr.json b/src/assets/i18n/fr.json index ea2cc9eaa..b1a0ee8bf 100755 --- a/src/assets/i18n/fr.json +++ b/src/assets/i18n/fr.json @@ -20,6 +20,7 @@ "remaining_budget_notification":"Votre budget restant est actuellement de", "Aide.L’Open_Source": "L’Open Source", "copieWallet.copier": "Copier", + "Limit_participation_reached":"Limite de participation atteinte", "notification_pools_retireive_now_budget": "Vous pouvez maintenant le récupérer", "notification_pools_retreive_waiting_budget":"Vous pouvez le récupérer dans", "notification_pools_retreive_waiting_budget_days": "Jours", From 7c60ae5faf51726032c88aead7db43e661011aa9 Mon Sep 17 00:00:00 2001 From: hichri-louay <124356992+hichri-louay@users.noreply.github.com> Date: Mon, 25 Sep 2023 14:38:26 +0100 Subject: [PATCH 11/23] 555 feednotificationcampaign (#558) * wip add space for start date in notification * add the views stats --- .../notifications/notification.component.ts | 31 +++++++++---------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/src/app/notifications/notification.component.ts b/src/app/notifications/notification.component.ts index 86f6b1a41..530ee138d 100755 --- a/src/app/notifications/notification.component.ts +++ b/src/app/notifications/notification.component.ts @@ -983,16 +983,16 @@ closeModal(content: any) { // Construct the result string let result = ''; if (years > 0) { - result += `${years} y `; + result += `${years}y `; } if (months > 0) { - result += `${months} m `; + result += `${months}m `; } if (days > 0) { - result += `${days} d `; + result += `${days}d `; } if (remainingHours > 0) { - result += `${remainingHours} h`; + result += `${remainingHours}h`; } return result.trim(); @@ -1043,7 +1043,8 @@ closeModal(content: any) { return token.name.startsWith('SATT') ? 'SaTT' : token.name } getStatistics(hash:string) { - this.campaignService.getStatisticsCampaign(hash) + + return this.campaignService.getStatisticsCampaign(hash) .pipe( map((response: any) => { if (response.message === 'success' && response.code === 200) { @@ -1052,16 +1053,8 @@ closeModal(content: any) { } }), - ) - .subscribe((data: any) => { - let sumOfViews = 0; - for (const platform in data) { - if (data.hasOwnProperty(platform)) { - sumOfViews += data[platform].views; - } - } - return sumOfViews; - }); + ); + } getRetrieveBudget(cmp:any) { return parseFloat(cmp.cost) / 10 **18 @@ -1181,7 +1174,13 @@ closeModal(content: any) { } switchFunction(item: any) { if(item.type === 'create_campaign') { - item.label.views = this.getStatistics(item.label.cmp_update.hash) + this.getStatistics(item.label.cmp_update.hash).subscribe((data: any) => { + let sumOfViews = 0; + for (const platform in data) { + sumOfViews += data[platform].views; + } + item.label.views = sumOfViews; + }); } if(item.type === 'cmp_candidate_reject_link') item.label.showReason = false const etherInWei = new Big(1000000000000000000); From 05423770ce3829dd6369d2c7171e856fb90cb4e8 Mon Sep 17 00:00:00 2001 From: hichri-louay <124356992+hichri-louay@users.noreply.github.com> Date: Mon, 25 Sep 2023 17:30:35 +0100 Subject: [PATCH 12/23] wip correction display wallet for new users (#559) --- src/app/core/services/Auth/auth-store.service.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/app/core/services/Auth/auth-store.service.ts b/src/app/core/services/Auth/auth-store.service.ts index 98d733d10..c00dac6b8 100755 --- a/src/app/core/services/Auth/auth-store.service.ts +++ b/src/app/core/services/Auth/auth-store.service.ts @@ -56,10 +56,17 @@ export class AuthStoreService { public getAccount() { return this.auth.verifyAccount().pipe( tap( (response) => { + console.log({response}) const hasWalletV2 = response.data.hasWalletV2 || false if(!!response.data.migrated && response.data.migrated) this.tokenStorageService.setItem('wallet_version', 'v2'); else { - this.tokenStorageService.setItem('wallet_version', 'v1'); + this.walletFacade.checkUserIsNew().subscribe((res:any) => { + if(res.data) this.tokenStorageService.setItem('wallet_version', 'v2'); + else this.tokenStorageService.setItem('wallet_version', 'v1'); + }, (err) => { + hasWalletV2 ? this.tokenStorageService.setItem('wallet_version', 'v2') : this.tokenStorageService.setItem('wallet_version', 'v1'); + }) + /*this.cryptofetchServiceService.getTotalBalance().subscribe((res:any) => { From 0ac9d6bd9371b87b08f96d907adcd1b8d513fec0 Mon Sep 17 00:00:00 2001 From: hichri-louay <124356992+hichri-louay@users.noreply.github.com> Date: Mon, 25 Sep 2023 18:19:31 +0100 Subject: [PATCH 13/23] remove border radius for social icons (#560) --- src/app/notifications/notification.component.css | 9 +++++++++ src/app/notifications/notification.component.html | 6 +++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/app/notifications/notification.component.css b/src/app/notifications/notification.component.css index 1abf2a242..040eaea9b 100755 --- a/src/app/notifications/notification.component.css +++ b/src/app/notifications/notification.component.css @@ -614,6 +614,15 @@ input[type='date']::-webkit-calendar-picker-indicator { margin-top: auto; } +.pic_avatar_notif_social { + bottom: 0.5em; + position: relative; + height: 3em; + + width: 3em; + margin-top: auto; +} + .container_perso { width: auto; margin: auto; diff --git a/src/app/notifications/notification.component.html b/src/app/notifications/notification.component.html index f024fb7bc..e369edb55 100755 --- a/src/app/notifications/notification.component.html +++ b/src/app/notifications/notification.component.html @@ -231,7 +231,7 @@ avtar @@ -240,7 +240,7 @@ avtar @@ -260,7 +260,7 @@ : getLinkIconValidate(i.label.link.oracle) " alt="avtar" - class="pic_avatar_notif" + class="pic_avatar_notif_social" /> From bf54673e8f7c150bfe1e0ab42b796927bcf1a2fa Mon Sep 17 00:00:00 2001 From: hichri-louay <124356992+hichri-louay@users.noreply.github.com> Date: Tue, 26 Sep 2023 10:53:34 +0100 Subject: [PATCH 14/23] add error message for limit participation reached (#561) --- .../components/participer/participer.component.css | 6 ++++++ .../components/participer/participer.component.html | 4 +++- .../campaigns/components/participer/participer.component.ts | 5 +++++ src/assets/i18n/en.json | 1 + src/assets/i18n/fr.json | 1 + 5 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/app/campaigns/components/participer/participer.component.css b/src/app/campaigns/components/participer/participer.component.css index f06943441..2df737b7c 100755 --- a/src/app/campaigns/components/participer/participer.component.css +++ b/src/app/campaigns/components/participer/participer.component.css @@ -6,6 +6,12 @@ } +.error-message-limit-participation { + text-align: center; + color: red; + margin-top: 3%; +} + .input-amount { -webkit-appearance: none; appearance: none; diff --git a/src/app/campaigns/components/participer/participer.component.html b/src/app/campaigns/components/participer/participer.component.html index 7816f96af..09e640800 100755 --- a/src/app/campaigns/components/participer/participer.component.html +++ b/src/app/campaigns/components/participer/participer.component.html @@ -563,7 +563,9 @@

{{ 'monetize_your_post' | translate }}

- +
+

{{ 'error_limit_participation' | translate }}

+
diff --git a/src/app/campaigns/components/farm-post-card/farm-post-card.component.ts b/src/app/campaigns/components/farm-post-card/farm-post-card.component.ts index 37ea1229e..63e0c3d63 100755 --- a/src/app/campaigns/components/farm-post-card/farm-post-card.component.ts +++ b/src/app/campaigns/components/farm-post-card/farm-post-card.component.ts @@ -82,6 +82,25 @@ export class FarmPostCardComponent implements OnInit { [atLastOneChecked(), requiredDescription()] ); } + countHarvestDownTimerForPublication() { + // Provided end date in UNIX timestamp format (e.g., 1698192000) + const endDateTimestamp = this.prom.campaign.endDate * 1000; // Convert to milliseconds + + // Current date + const currentDate = Date.now(); + + // Calculate the time difference in milliseconds + const timeDifference = endDateTimestamp - currentDate; + + // Calculate days, hours, and minutes + const days = Math.floor(timeDifference / (1000 * 60 * 60 * 24)); + const hours = Math.floor((timeDifference % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); + const minutes = Math.floor((timeDifference % (1000 * 60 * 60)) / (1000 * 60)); + if(days === 0 && hours === 0 && minutes === 0) { + this.harvestAvailable = false; + } else this.harvestAvailable = true; + return `${days}d ${hours}h ${minutes}min`; + } private countDownTimer(): void { const timestampAcceptedDate: number = this.prom.acceptedDate * 1000; @@ -142,11 +161,12 @@ export class FarmPostCardComponent implements OnInit { ) .subscribe((prom: any) => { this.prom = new Participation(prom); - + this.countHarvestDownTimerForPublication(); }); let currencyName = this.prom.campaign.currency; this.intervalId = setInterval(() => { this.countDownTimer(); + }, 1000); if (currencyName === 'SATTBEP20') currencyName = 'SATT'; From b88495b053914d4f4abb14742c5057f8e1eefb66 Mon Sep 17 00:00:00 2001 From: kachourihassen <60717797+kachourihassen@users.noreply.github.com> Date: Thu, 28 Sep 2023 14:47:35 +0100 Subject: [PATCH 22/23] Meta property (#571) * Social Share Preview * LimiteDescription * wip * ATTR.CONTENT * Optimisation de code --- .../campaign-details-container.component.html | 15 +++++++++------ .../campaign-details-container.component.ts | 4 +++- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/app/campaigns/campaign-details/components/campaign-details-container/campaign-details-container.component.html b/src/app/campaigns/campaign-details/components/campaign-details-container/campaign-details-container.component.html index bdf23b2c6..457f71229 100755 --- a/src/app/campaigns/campaign-details/components/campaign-details-container/campaign-details-container.component.html +++ b/src/app/campaigns/campaign-details/components/campaign-details-container/campaign-details-container.component.html @@ -1,13 +1,16 @@ - + + + + + + + ---> -
diff --git a/src/app/campaigns/campaign-details/components/campaign-details-container/campaign-details-container.component.ts b/src/app/campaigns/campaign-details/components/campaign-details-container/campaign-details-container.component.ts index abe6a7768..627f53ea6 100755 --- a/src/app/campaigns/campaign-details/components/campaign-details-container/campaign-details-container.component.ts +++ b/src/app/campaigns/campaign-details/components/campaign-details-container/campaign-details-container.component.ts @@ -289,7 +289,9 @@ export class CampaignDetailsContainerComponent implements OnInit { imageImported(image: any) { this.campaignsStoreService.updateOneById({ cover: image }); } - + limitDescription(description: string | undefined, maxLength: number = 200): string { + return description ? description.slice(0, maxLength) : ''; + } ngOnDestroy(): void { this.isDestroyed.next(''); this.isDestroyed.unsubscribe(); From aeba50907879c178bae15e52a3dfbe28e2eebc99 Mon Sep 17 00:00:00 2001 From: kachourihassen <60717797+kachourihassen@users.noreply.github.com> Date: Thu, 28 Sep 2023 15:51:58 +0100 Subject: [PATCH 23/23] Meta property content (#572) * Social Share Preview * LimiteDescription * wip * ATTR.CONTENT * Optimisation de code * change by content --- .../campaign-details-container.component.html | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/app/campaigns/campaign-details/components/campaign-details-container/campaign-details-container.component.html b/src/app/campaigns/campaign-details/components/campaign-details-container/campaign-details-container.component.html index 457f71229..a1b23ef6b 100755 --- a/src/app/campaigns/campaign-details/components/campaign-details-container/campaign-details-container.component.html +++ b/src/app/campaigns/campaign-details/components/campaign-details-container/campaign-details-container.component.html @@ -1,12 +1,16 @@ + + + + + + - - - +