Merge branch 'main' of https://freeleaps.com:3443/products/freeleaps into main
* 'main' of https://freeleaps.com:3443/products/freeleaps: Fix minor UI display for cancel&edit Update the minor UI display support both content.link and content.pdf when rendering public static content
This commit is contained in:
commit
55c78c3530
@ -6,14 +6,14 @@ export default {
|
||||
Summary: 'Summary',
|
||||
Status: 'Status',
|
||||
Date: 'Date',
|
||||
withdraw: 'withdraw',
|
||||
edit: 'edit',
|
||||
withdraw: 'Cancel',
|
||||
edit: 'Edit',
|
||||
Quote: 'Quote',
|
||||
Payment: 'Payment',
|
||||
Duration: 'Duration',
|
||||
days: 'days',
|
||||
Update: 'Update',
|
||||
From: 'From',
|
||||
"Quote From": 'From',
|
||||
reject: 'reject',
|
||||
accept: 'accept',
|
||||
Note: 'Note',
|
||||
|
||||
@ -13,7 +13,7 @@ export default {
|
||||
Duration: '工期',
|
||||
days: '天',
|
||||
Update: '更新',
|
||||
From: '需求方',
|
||||
"Quote From": '需求方',
|
||||
reject: '拒绝',
|
||||
accept: '接受',
|
||||
Note: '标注',
|
||||
@ -170,7 +170,7 @@ export default {
|
||||
'Review your request and the associated proposals': '核对你的请求和相关提议',
|
||||
Title: '标题',
|
||||
Action: '待办操作',
|
||||
Proposals: '提议数',
|
||||
Proposals: '报价数量',
|
||||
'Proposed by': '提议来自',
|
||||
Price: '价格',
|
||||
Reject: '拒绝',
|
||||
@ -190,7 +190,7 @@ export default {
|
||||
'day(s)': '天',
|
||||
'Some update in your work': 'Some update in your work',
|
||||
'Some update in your request': 'Some update in your request',
|
||||
'min(s)': '响应时间',
|
||||
'min(s)': '分钟',
|
||||
'line(s)': '每周产出代码',
|
||||
'Issues management': '问题管理',
|
||||
'Payment progress': '付款进度',
|
||||
|
||||
@ -1,17 +1,15 @@
|
||||
<template>
|
||||
<div class="directories_containter">
|
||||
<div
|
||||
class="directory_container"
|
||||
v-for="(directory, index) in directories"
|
||||
:key="index"
|
||||
>
|
||||
<div class="directory_container" v-for="(directory, index) in directories" :key="index">
|
||||
<div
|
||||
class="directory_cover_image"
|
||||
:style="{ 'background-image': `url(${directory.cover_picture})` }"
|
||||
/>
|
||||
<p class="directory-title">{{ directory.title_text }}</p>
|
||||
<p class="directory-subtitle">{{ directory.summary_text }}</p>
|
||||
<button class="btn btn-link directory-btn" @click="view_link(directory)">{{ $t('Read More') }}</button>
|
||||
<button class="btn btn-link directory-btn" @click="view_link(directory)">
|
||||
{{ $t('Read More') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@ -35,7 +33,10 @@ export default {
|
||||
})
|
||||
},
|
||||
view_link(directory) {
|
||||
this.mnx_navToLinkContentViewer(btoa(directory.content_link))
|
||||
if (directory.content_id)
|
||||
this.mnx_navToPdfContentViewer(directory.content_id)
|
||||
else if (directory.content_link)
|
||||
this.mnx_navToLinkContentViewer(btoa(directory.content_link))
|
||||
}
|
||||
},
|
||||
data() {
|
||||
|
||||
@ -32,7 +32,10 @@ export default {
|
||||
})
|
||||
},
|
||||
view_blog(blog) {
|
||||
this.mnx_navToPdfContentViewer(blog.content_id)
|
||||
if (blog.content_id)
|
||||
this.mnx_navToPdfContentViewer(blog.content_id)
|
||||
else if (blog.content_link)
|
||||
this.mnx_navToLinkContentViewer(btoa(blog.content_link))
|
||||
},
|
||||
retrieve_summary(blog) {
|
||||
return blog.summary_text
|
||||
|
||||
@ -1,11 +1,6 @@
|
||||
<template>
|
||||
<div class="career_containter">
|
||||
<div
|
||||
class="career-item"
|
||||
v-for="(directory, index) in directories"
|
||||
:key="index"
|
||||
@click="view_link(directory)"
|
||||
>
|
||||
<div class="career-item" v-for="(directory, index) in directories" :key="index" @click="view_link(directory)">
|
||||
<p class="career-title">
|
||||
{{ directory.title_text }}
|
||||
</p>
|
||||
@ -33,7 +28,10 @@ export default {
|
||||
})
|
||||
},
|
||||
view_link(directory) {
|
||||
this.mnx_navToLinkContentViewer(btoa(directory.content_link))
|
||||
if (directory.content_id)
|
||||
this.mnx_navToPdfContentViewer(directory.content_id)
|
||||
else if (directory.content_link)
|
||||
this.mnx_navToLinkContentViewer(btoa(directory.content_link))
|
||||
}
|
||||
},
|
||||
data() {
|
||||
|
||||
@ -2,21 +2,11 @@
|
||||
<empty-content :loading="loading" :empty="recommendedProviders?.length === 0" />
|
||||
<div class="provider-hub-container" id="provider-accordion-container">
|
||||
<template v-if="recommendedProviders">
|
||||
<div
|
||||
class="accordion accordion-list"
|
||||
v-for="(provider, index) in recommendedProviders"
|
||||
:key="index"
|
||||
>
|
||||
<div class="accordion accordion-list" v-for="(provider, index) in recommendedProviders" :key="index">
|
||||
<div class="accordion-item my-3">
|
||||
<h2 class="accordion-header">
|
||||
<button
|
||||
class="accordion-button collapsed"
|
||||
type="button"
|
||||
data-bs-toggle="collapse"
|
||||
:data-bs-target="'#collapse' + index"
|
||||
aria-expanded="false"
|
||||
:aria-controls="'collapse' + index"
|
||||
>
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse"
|
||||
:data-bs-target="'#collapse' + index" aria-expanded="false" :aria-controls="'collapse' + index">
|
||||
<div class="provider-summary-containter dashed-container">
|
||||
<div class="provider-portrait-containter">
|
||||
<img class="provider-portrait" alt="user portrait" src="@/assets/profile.png" />
|
||||
@ -25,26 +15,18 @@
|
||||
<label class="provider-name-label" for="provider-name">{{ $t('Name') }}</label>
|
||||
<span class="provider-name-span" id="provider-name">
|
||||
{{ provider.user_profile.first_name }}
|
||||
{{ provider.user_profile.last_name }}</span
|
||||
>
|
||||
{{ provider.user_profile.last_name }}</span>
|
||||
</div>
|
||||
<div class="provider-stay-on-freeleaps-container">
|
||||
<label
|
||||
class="provider-stay-on-freeleaps-label"
|
||||
for="provider-stay-on-freeleaps"
|
||||
>{{ $t('Stay on Freeleaps') }}</label
|
||||
>
|
||||
<label class="provider-stay-on-freeleaps-label" for="provider-stay-on-freeleaps">
|
||||
{{ $t('Stay on Freeleaps') }} </label>
|
||||
<span class="provider-stay-on-freeleaps-span" id="provider-stay-on-freeleaps">
|
||||
{{ provider.activeness_achievement.days_of_staying_on }}
|
||||
{{ $t('day(s)') }}</span
|
||||
>
|
||||
{{ $t('day(s)') }}</span>
|
||||
</div>
|
||||
<div class="provider-delivered-projects-container">
|
||||
<label
|
||||
class="provider-delivered-projects-label"
|
||||
for="provider-delivered-projects"
|
||||
>{{ $t('Delivered projects') }}</label
|
||||
>
|
||||
<label class="provider-delivered-projects-label" for="provider-delivered-projects">
|
||||
{{ $t('Delivered projects') }}</label>
|
||||
<span class="provider-delivered-projects-span" id="provider-delivered-projects">
|
||||
{{ provider.provider_achievement.delivered_projects }}
|
||||
</span>
|
||||
@ -52,49 +34,42 @@
|
||||
<div class="provider-responding-time-container">
|
||||
<label class="provider-responding-time-label" for="provider-responding-time">{{
|
||||
$t('Responding time')
|
||||
}}</label>
|
||||
}}</label>
|
||||
<span class="provider-responding-time-span" id="provider-responding-time">
|
||||
{{ provider.provider_achievement.responding_time_in_minutes }}
|
||||
{{ provider.provider_achievement.activities.responding_time_in_minutes ?? 'N/A' }}
|
||||
{{ $t('min(s)') }}
|
||||
</span>
|
||||
</div>
|
||||
<div class="provider-credit-score-container">
|
||||
<label class="provider-credit-score-label" for="provider-credit-score">{{
|
||||
$t('Credit score')
|
||||
}}</label>
|
||||
}}</label>
|
||||
<span class="provider-credit-score-span" id="provider-credit-score">
|
||||
{{ provider.provider_achievement.credit }}</span
|
||||
>
|
||||
{{ provider.provider_achievement.credit }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</button>
|
||||
</h2>
|
||||
<div
|
||||
:id="'collapse' + index"
|
||||
class="accordion-collapse collapse"
|
||||
data-bs-parent="#provider-accordion-container"
|
||||
>
|
||||
<div :id="'collapse' + index" class="accordion-collapse collapse"
|
||||
data-bs-parent="#provider-accordion-container">
|
||||
<div class="accordion-body">
|
||||
<div class="self-intro-container">
|
||||
<label class="self-intro-content-label" for="self-intro-content">{{
|
||||
$t('Self intro')
|
||||
}}</label>
|
||||
<div
|
||||
class="self-intro-content-container"
|
||||
id="self-intro-content"
|
||||
v-html="provider.user_profile.self_intro.content_html"
|
||||
></div>
|
||||
}}</label>
|
||||
<div class="self-intro-content-container" id="self-intro-content"
|
||||
v-html="provider.user_profile.self_intro.content_html"></div>
|
||||
</div>
|
||||
<div class="statistics-container">
|
||||
<label class="self-intro-content-label" for="statistics-content">{{
|
||||
$t('Profile')
|
||||
}}</label>
|
||||
}}</label>
|
||||
<div class="statistics-content-container" id="statistics-content">
|
||||
<div class="delivery-container">
|
||||
<div class="dd-project-container">
|
||||
<label class="dd-project-label" for="delivery-delivered-projects">{{
|
||||
$t('Delivered projects')
|
||||
}}</label>
|
||||
}}</label>
|
||||
<span class="dd-project-span" id="delivery-delivered-projects">
|
||||
{{ provider.provider_achievement.delivered_projects }}
|
||||
</span>
|
||||
@ -102,7 +77,7 @@
|
||||
<div class="dd-project-container">
|
||||
<label class="dd-project-label" for="delivery-time-per-project">{{
|
||||
$t('Project delivering time')
|
||||
}}</label>
|
||||
}}</label>
|
||||
<span class="dd-project-span" id="delivery-time-per-project">
|
||||
{{ provider.provider_deliveries.delivering_time_per_project_in_day }}
|
||||
{{ $t('day(s)') }}
|
||||
@ -111,17 +86,11 @@
|
||||
<div class="dd-project-container">
|
||||
<label class="dd-project-label" for="delivery-top-programming-language">{{
|
||||
$t('Top programming languages')
|
||||
}}</label>
|
||||
<div
|
||||
class="delivery-top-programming-language-content-container"
|
||||
id="delivery-top-programming-language"
|
||||
>
|
||||
<span
|
||||
v-for="(lang, index) in provider.provider_deliveries
|
||||
.top_programming_languages"
|
||||
:key="index"
|
||||
class="dd-project-span"
|
||||
>
|
||||
}}</label>
|
||||
<div class="delivery-top-programming-language-content-container"
|
||||
id="delivery-top-programming-language">
|
||||
<span v-for="(lang, index) in provider.provider_deliveries
|
||||
.top_programming_languages" :key="index" class="dd-project-span">
|
||||
#{{ lang }}
|
||||
</span>
|
||||
</div>
|
||||
@ -129,7 +98,7 @@
|
||||
<div class="dd-project-container">
|
||||
<label class="dd-project-label" for="delivery-weekly-produced-code">{{
|
||||
$t('Weekly produced code')
|
||||
}}</label>
|
||||
}}</label>
|
||||
<span class="dd-project-span" id="delivery-weekly-produced-code">
|
||||
{{ provider.provider_deliveries.lines_of_code_per_week }}
|
||||
{{ $t('line(s)') }}
|
||||
@ -140,7 +109,7 @@
|
||||
<div class="dd-project-container">
|
||||
<label class="dd-project-label" for="activity-ongoing-projects">{{
|
||||
$t('Ongoing projects')
|
||||
}}</label>
|
||||
}}</label>
|
||||
<span class="dd-project-span" id="activity-ongoing-projects">
|
||||
{{ provider.provider_activities.ongoing_projects }}
|
||||
</span>
|
||||
@ -148,7 +117,7 @@
|
||||
<div class="dd-project-container">
|
||||
<label class="dd-project-label" for="activity-invitation-to-requests">{{
|
||||
$t('Invitations to requests')
|
||||
}}</label>
|
||||
}}</label>
|
||||
<span class="dd-project-span" id="activity-invitation-to-requests">
|
||||
{{ provider.provider_activities.invitations_to_open_requests }}
|
||||
</span>
|
||||
@ -156,7 +125,7 @@
|
||||
<div class="dd-project-container">
|
||||
<label class="dd-project-label" for="activity-active-proposals">{{
|
||||
$t('Active proposals')
|
||||
}}</label>
|
||||
}}</label>
|
||||
<span class="dd-project-span" id="activity-active-proposals">
|
||||
{{ provider.provider_activities.active_proposals }}
|
||||
</span>
|
||||
@ -164,7 +133,7 @@
|
||||
<div class="dd-project-container">
|
||||
<label class="dd-project-label" for="activity-hourly-rate">{{
|
||||
$t('Expected hourly rate')
|
||||
}}</label>
|
||||
}}</label>
|
||||
<span class="dd-project-span" id="activity-hourly-rate">
|
||||
{{ provider.provider_profile.expected_salary.hourly }}
|
||||
{{ provider.provider_profile.expected_salary.currency }}
|
||||
@ -175,7 +144,7 @@
|
||||
<div class="dd-project-container">
|
||||
<label class="dd-project-label" for="quality-issue-rate">{{
|
||||
$t('Code issue rate')
|
||||
}}</label>
|
||||
}}</label>
|
||||
<span class="dd-project-span" id="quality-issue-rate">
|
||||
{{ provider.provider_work_quality.issues_per_thousand_lines_of_codes }}
|
||||
</span>
|
||||
@ -183,7 +152,7 @@
|
||||
<div class="dd-project-container">
|
||||
<label class="dd-project-label" for="quality-online-issue-rate">{{
|
||||
$t('Online issue rate')
|
||||
}}</label>
|
||||
}}</label>
|
||||
<span class="dd-project-span" id="quality-online-issue-rate">
|
||||
{{ provider.provider_work_quality.issues_after_delivery_per_project }}
|
||||
</span>
|
||||
@ -191,7 +160,7 @@
|
||||
<div class="dd-project-container">
|
||||
<label class="dd-project-label" for="quality-issue-fixing-rate">{{
|
||||
$t('Issue fixing rate')
|
||||
}}</label>
|
||||
}}</label>
|
||||
<span class="dd-project-span" id="quality-issue-fixing-rate">
|
||||
{{ provider.provider_work_quality.issue_fixing_rate_pencentage }}%
|
||||
</span>
|
||||
@ -199,7 +168,7 @@
|
||||
<div class="dd-project-container">
|
||||
<label class="dd-project-label" for="quality-issue-fixing-time">{{
|
||||
$t('Issue fixing time')
|
||||
}}</label>
|
||||
}}</label>
|
||||
<span class="dd-project-span" id="quality-issue-fixing-time">
|
||||
{{ provider.provider_work_quality.issue_fixing_time_minutes }}
|
||||
{{ $t('min(s)') }}
|
||||
@ -211,60 +180,36 @@
|
||||
<div v-if="requests" class="accordion" id="accordion-action-panel">
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header">
|
||||
<button
|
||||
class="accordion-button"
|
||||
type="button"
|
||||
data-bs-toggle="collapse"
|
||||
data-bs-target="#collapse-action-panel"
|
||||
aria-expanded="false"
|
||||
aria-controls="collapse-action-panel"
|
||||
>
|
||||
<button class="accordion-button" type="button" data-bs-toggle="collapse"
|
||||
data-bs-target="#collapse-action-panel" aria-expanded="false"
|
||||
aria-controls="collapse-action-panel">
|
||||
{{ $t('Action panel') }}
|
||||
</button>
|
||||
</h2>
|
||||
<div
|
||||
id="collapse-action-panel"
|
||||
class="accordion-collapse collapse"
|
||||
data-bs-parent="#accordion-action-panel"
|
||||
>
|
||||
<div id="collapse-action-panel" class="accordion-collapse collapse"
|
||||
data-bs-parent="#accordion-action-panel">
|
||||
<div class="accordion-body">
|
||||
<div class="invite-to-request-container">
|
||||
<label
|
||||
class="invite-to-request-content-label"
|
||||
for="invite-to-request-content"
|
||||
>{{ $t('Invite') }}
|
||||
<span class="invite-to-request-name-span"
|
||||
>{{ provider.user_profile.first_name }}
|
||||
{{ provider.user_profile.last_name }}</span
|
||||
>
|
||||
{{ $t('to my open requests') }}</label
|
||||
>
|
||||
<div
|
||||
class="invite-to-request-content-container"
|
||||
id="invite-to-request-content"
|
||||
>
|
||||
<label class="invite-to-request-content-label" for="invite-to-request-content">{{ $t('Invite')
|
||||
}}
|
||||
<span class="invite-to-request-name-span">{{ provider.user_profile.first_name }}
|
||||
{{ provider.user_profile.last_name }}</span>
|
||||
{{ $t('to my open requests') }}</label>
|
||||
<div class="invite-to-request-content-container" id="invite-to-request-content">
|
||||
<div class="form-check" v-for="(request, index) in requests" :key="index">
|
||||
<input
|
||||
class="form-check-input"
|
||||
type="checkbox"
|
||||
:value="request.id"
|
||||
:id="'check' + request.id"
|
||||
v-model="checkedRequests"
|
||||
@change="
|
||||
<input class="form-check-input" type="checkbox" :value="request.id"
|
||||
:id="'check' + request.id" v-model="checkedRequests" @change="
|
||||
checkRequest($event, request.id, provider.user_profile.user_id)
|
||||
"
|
||||
/>
|
||||
" />
|
||||
<label class="form-check-label" :for="'check' + request.id">{{
|
||||
request.title
|
||||
}}</label>
|
||||
}}</label>
|
||||
</div>
|
||||
<span class="invite-to-request-note-text"
|
||||
>*{{
|
||||
$t(
|
||||
'Once the request is selected, the provider will be invited to see the request.'
|
||||
)
|
||||
}}</span
|
||||
>
|
||||
<span class="invite-to-request-note-text">*{{
|
||||
$t(
|
||||
'Once the request is selected, the provider will be invited to see the request.'
|
||||
)
|
||||
}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -57,7 +57,7 @@
|
||||
<div class="project-request-proposal-bar-container">
|
||||
<div class="project-request-proposal-quote-container">
|
||||
<label class="project-item-label">{{ $t('Quote') }}</label>
|
||||
<p class="project-item-text">{{ proposal.price_in_usd }} USD</p>
|
||||
<p class="project-item-text">{{ proposal.total_amount }} {{ proposal.currency }}</p>
|
||||
</div>
|
||||
<div class="project-request-proposal-payment-type-container">
|
||||
<label class="project-item-label">{{ $t('Payment') }}</label>
|
||||
@ -78,7 +78,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="project-request-proposal-from-container">
|
||||
<label class="project-item-label">{{ $t('From') }}</label>
|
||||
<label class="project-item-label">{{ $t('Quote From') }}</label>
|
||||
<p class="project-item-text">
|
||||
{{ proposal.proposer.first_name }} {{ proposal.proposer.last_name }}
|
||||
</p>
|
||||
@ -233,10 +233,10 @@
|
||||
<div class="project-milestones-table-content">
|
||||
<span class="project-milestones-table-label">{{
|
||||
$t('Milestone')
|
||||
}}</span>
|
||||
}}</span>
|
||||
<span class="project-milestones-table-span">{{
|
||||
milestone.index
|
||||
}}</span>
|
||||
}}</span>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
@ -244,7 +244,7 @@
|
||||
<span class="project-milestones-table-label">{{ $t('Goal') }}</span>
|
||||
<span class="project-milestones-table-span">{{
|
||||
milestone.description
|
||||
}}</span>
|
||||
}}</span>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
@ -252,14 +252,14 @@
|
||||
<span class="project-milestones-table-label">{{ $t('Status') }}</span>
|
||||
<span class="project-milestones-table-span">{{
|
||||
fromIntToMilestoneStatus(milestone.status)
|
||||
}}</span>
|
||||
}}</span>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="project-milestones-table-content">
|
||||
<span class="project-milestones-table-label">{{
|
||||
$t('Payment')
|
||||
}}</span>
|
||||
}}</span>
|
||||
<span class="project-milestones-table-span">
|
||||
{{ milestone.actual_paid }} / {{ milestone.expected_payment }}
|
||||
{{ project.project.progress.payment_currency }}
|
||||
@ -271,7 +271,7 @@
|
||||
<span class="project-milestones-table-label">{{ $t('Update') }}</span>
|
||||
<span class="project-milestones-table-span">{{
|
||||
getDateFromFulltimeString(milestone.update_time)
|
||||
}}</span>
|
||||
}}</span>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user