Merge branch 'develop' into feat/new-auth-screens
This commit is contained in:
commit
73a8c07f7b
396 changed files with 8177 additions and 2997 deletions
|
@ -7,7 +7,7 @@ defaults: &defaults
|
|||
working_directory: ~/build
|
||||
docker:
|
||||
# specify the version you desire here
|
||||
- image: cimg/ruby:3.0.2-browsers
|
||||
- image: cimg/ruby:3.0.4-browsers
|
||||
|
||||
# Specify service dependencies here if necessary
|
||||
# CircleCI maintains a library of pre-built images
|
||||
|
@ -40,14 +40,13 @@ jobs:
|
|||
|
||||
- restore_cache:
|
||||
keys:
|
||||
- chatwoot-bundle-{{ .Environment.CACHE_VERSION }}-{{ checksum "Gemfile.lock" }}
|
||||
- chatwoot-bundle
|
||||
- chatwoot-bundle-{{ .Environment.CACHE_VERSION }}-v20220524-{{ checksum "Gemfile.lock" }}
|
||||
|
||||
- run: bundle install --frozen --path ~/.bundle
|
||||
- save_cache:
|
||||
paths:
|
||||
- ~/.bundle
|
||||
key: chatwoot-bundle-{{ .Environment.CACHE_VERSION }}-{{ checksum "Gemfile.lock" }}
|
||||
key: chatwoot-bundle-{{ .Environment.CACHE_VERSION }}-v20220524-{{ checksum "Gemfile.lock" }}
|
||||
|
||||
|
||||
# Only necessary if app uses webpacker or yarn in some other way
|
||||
|
|
2
.github/workflows/run_foss_spec.yml
vendored
2
.github/workflows/run_foss_spec.yml
vendored
|
@ -47,7 +47,7 @@ jobs:
|
|||
|
||||
- uses: ruby/setup-ruby@v1
|
||||
with:
|
||||
ruby-version: 3.0.2 # Not needed with a .ruby-version file
|
||||
ruby-version: 3.0.4 # Not needed with a .ruby-version file
|
||||
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
||||
|
||||
- name: yarn
|
||||
|
|
|
@ -1 +1 @@
|
|||
3.0.2
|
||||
3.0.4
|
||||
|
|
2
Gemfile
2
Gemfile
|
@ -1,6 +1,6 @@
|
|||
source 'https://rubygems.org'
|
||||
|
||||
ruby '3.0.2'
|
||||
ruby '3.0.4'
|
||||
|
||||
##-- base gems for rails --##
|
||||
gem 'rack-cors', require: 'rack/cors'
|
||||
|
|
12
Gemfile.lock
12
Gemfile.lock
|
@ -378,14 +378,14 @@ GEM
|
|||
netrc (0.11.0)
|
||||
newrelic_rpm (8.7.0)
|
||||
nio4r (2.5.8)
|
||||
nokogiri (1.13.5)
|
||||
nokogiri (1.13.6)
|
||||
mini_portile2 (~> 2.8.0)
|
||||
racc (~> 1.4)
|
||||
nokogiri (1.13.5-arm64-darwin)
|
||||
nokogiri (1.13.6-arm64-darwin)
|
||||
racc (~> 1.4)
|
||||
nokogiri (1.13.5-x86_64-darwin)
|
||||
nokogiri (1.13.6-x86_64-darwin)
|
||||
racc (~> 1.4)
|
||||
nokogiri (1.13.5-x86_64-linux)
|
||||
nokogiri (1.13.6-x86_64-linux)
|
||||
racc (~> 1.4)
|
||||
oauth (0.5.8)
|
||||
orm_adapter (0.5.0)
|
||||
|
@ -409,7 +409,7 @@ GEM
|
|||
activesupport (>= 3.0.0)
|
||||
raabro (1.4.0)
|
||||
racc (1.6.0)
|
||||
rack (2.2.3)
|
||||
rack (2.2.3.1)
|
||||
rack-attack (6.6.0)
|
||||
rack (>= 1.0, < 3)
|
||||
rack-cors (1.1.1)
|
||||
|
@ -752,7 +752,7 @@ DEPENDENCIES
|
|||
working_hours
|
||||
|
||||
RUBY VERSION
|
||||
ruby 3.0.2p107
|
||||
ruby 3.0.4p208
|
||||
|
||||
BUNDLED WITH
|
||||
2.3.10
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
class Api::V1::Accounts::AssignableAgentsController < Api::V1::Accounts::BaseController
|
||||
before_action :fetch_inboxes
|
||||
|
||||
def index
|
||||
agent_ids = @inboxes.map do |inbox|
|
||||
authorize inbox, :show?
|
||||
member_ids = inbox.members.pluck(:user_id)
|
||||
member_ids
|
||||
end
|
||||
agent_ids = agent_ids.inject(:&)
|
||||
agents = Current.account.users.where(id: agent_ids)
|
||||
@assignable_agents = (agents + Current.account.administrators).uniq
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def fetch_inboxes
|
||||
@inboxes = Current.account.inboxes.find(permitted_params[:inbox_ids])
|
||||
end
|
||||
|
||||
def permitted_params
|
||||
params.permit(inbox_ids: [])
|
||||
end
|
||||
end
|
|
@ -1,4 +1,5 @@
|
|||
class Api::V1::Accounts::Kbase::CategoriesController < Api::V1::Accounts::Kbase::BaseController
|
||||
class Api::V1::Accounts::CategoriesController < Api::V1::Accounts::BaseController
|
||||
before_action :portal
|
||||
before_action :fetch_category, except: [:index, :create]
|
||||
|
||||
def index
|
||||
|
@ -24,6 +25,10 @@ class Api::V1::Accounts::Kbase::CategoriesController < Api::V1::Accounts::Kbase:
|
|||
@category = @portal.categories.find(params[:id])
|
||||
end
|
||||
|
||||
def portal
|
||||
@portal ||= Current.account.portals.find_by(slug: params[:portal_id])
|
||||
end
|
||||
|
||||
def category_params
|
||||
params.require(:category).permit(
|
||||
:name, :description, :position
|
|
@ -5,7 +5,7 @@ class Api::V1::Accounts::CsatSurveyResponsesController < Api::V1::Accounts::Base
|
|||
RESULTS_PER_PAGE = 25
|
||||
|
||||
before_action :check_authorization
|
||||
before_action :set_csat_survey_responses, only: [:index, :metrics]
|
||||
before_action :set_csat_survey_responses, only: [:index, :metrics, :download]
|
||||
before_action :set_current_page, only: [:index]
|
||||
before_action :set_current_page_surveys, only: [:index]
|
||||
before_action :set_total_sent_messages_count, only: [:metrics]
|
||||
|
@ -19,6 +19,12 @@ class Api::V1::Accounts::CsatSurveyResponsesController < Api::V1::Accounts::Base
|
|||
@ratings_count = @csat_survey_responses.group(:rating).count
|
||||
end
|
||||
|
||||
def download
|
||||
response.headers['Content-Type'] = 'text/csv'
|
||||
response.headers['Content-Disposition'] = 'attachment; filename=csat_report.csv'
|
||||
render layout: false, template: 'api/v1/accounts/csat_survey_responses/download.csv.erb', format: 'csv'
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def set_total_sent_messages_count
|
||||
|
|
44
app/controllers/api/v1/accounts/dashboard_apps_controller.rb
Normal file
44
app/controllers/api/v1/accounts/dashboard_apps_controller.rb
Normal file
|
@ -0,0 +1,44 @@
|
|||
class Api::V1::Accounts::DashboardAppsController < Api::V1::Accounts::BaseController
|
||||
before_action :fetch_dashboard_apps, except: [:create]
|
||||
before_action :fetch_dashboard_app, only: [:show, :update, :destroy]
|
||||
|
||||
def index; end
|
||||
|
||||
def show; end
|
||||
|
||||
def create
|
||||
@dashboard_app = Current.account.dashboard_apps.create!(
|
||||
permitted_payload.merge(user_id: Current.user.id)
|
||||
)
|
||||
end
|
||||
|
||||
def update
|
||||
@dashboard_app.update!(permitted_payload)
|
||||
end
|
||||
|
||||
def destroy
|
||||
@dashboard_app.destroy!
|
||||
head :no_content
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def fetch_dashboard_apps
|
||||
@dashboard_apps = Current.account.dashboard_apps
|
||||
end
|
||||
|
||||
def fetch_dashboard_app
|
||||
@dashboard_app = @dashboard_apps.find(permitted_params[:id])
|
||||
end
|
||||
|
||||
def permitted_payload
|
||||
params.require(:dashboard_app).permit(
|
||||
:title,
|
||||
content: [:url, :type]
|
||||
)
|
||||
end
|
||||
|
||||
def permitted_params
|
||||
params.permit(:id)
|
||||
end
|
||||
end
|
|
@ -12,6 +12,7 @@ class Api::V1::Accounts::InboxesController < Api::V1::Accounts::BaseController
|
|||
|
||||
def show; end
|
||||
|
||||
# Deprecated: This API will be removed in 2.7.0
|
||||
def assignable_agents
|
||||
@assignable_agents = (Current.account.users.where(id: @inbox.members.select(:user_id)) + Current.account.administrators).uniq
|
||||
end
|
||||
|
|
|
@ -1,9 +0,0 @@
|
|||
class Api::V1::Accounts::Kbase::BaseController < Api::V1::Accounts::BaseController
|
||||
before_action :portal
|
||||
|
||||
private
|
||||
|
||||
def portal
|
||||
@portal ||= Current.account.kbase_portals.find_by(slug: params[:portal_id])
|
||||
end
|
||||
end
|
|
@ -1,14 +1,14 @@
|
|||
class Api::V1::Accounts::Kbase::PortalsController < Api::V1::Accounts::BaseController
|
||||
class Api::V1::Accounts::PortalsController < Api::V1::Accounts::BaseController
|
||||
before_action :fetch_portal, except: [:index, :create]
|
||||
|
||||
def index
|
||||
@portals = Current.account.kbase_portals
|
||||
@portals = Current.account.portals
|
||||
end
|
||||
|
||||
def show; end
|
||||
|
||||
def create
|
||||
@portal = Current.account.kbase_portals.create!(portal_params)
|
||||
@portal = Current.account.portals.create!(portal_params)
|
||||
end
|
||||
|
||||
def update
|
||||
|
@ -23,7 +23,7 @@ class Api::V1::Accounts::Kbase::PortalsController < Api::V1::Accounts::BaseContr
|
|||
private
|
||||
|
||||
def fetch_portal
|
||||
@portal = Current.account.kbase_portals.find_by(slug: permitted_params[:id])
|
||||
@portal = Current.account.portals.find_by(slug: permitted_params[:id])
|
||||
end
|
||||
|
||||
def permitted_params
|
||||
|
@ -32,7 +32,7 @@ class Api::V1::Accounts::Kbase::PortalsController < Api::V1::Accounts::BaseContr
|
|||
|
||||
def portal_params
|
||||
params.require(:portal).permit(
|
||||
:account_id, :color, :custom_domain, :header_text, :homepage_link, :name, :page_title, :slug
|
||||
:account_id, :color, :custom_domain, :header_text, :homepage_link, :name, :page_title, :slug, :archived
|
||||
)
|
||||
end
|
||||
end
|
|
@ -54,6 +54,7 @@ class Api::V1::Widget::BaseController < ApplicationController
|
|||
).perform
|
||||
else
|
||||
@contact.update!(email: email)
|
||||
update_contact_name
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -67,9 +68,14 @@ class Api::V1::Widget::BaseController < ApplicationController
|
|||
).perform
|
||||
else
|
||||
@contact.update!(phone_number: phone_number)
|
||||
update_contact_name
|
||||
end
|
||||
end
|
||||
|
||||
def update_contact_name
|
||||
@contact.update!(name: contact_name) if contact_name.present?
|
||||
end
|
||||
|
||||
def contact_email
|
||||
permitted_params.dig(:contact, :email)&.downcase
|
||||
end
|
||||
|
|
|
@ -16,7 +16,6 @@ class Api::V1::Widget::ConversationsController < Api::V1::Widget::BaseController
|
|||
def process_update_contact
|
||||
update_contact(contact_email) if @contact.email.blank? && contact_email.present?
|
||||
update_contact_phone_number(contact_phone_number) if @contact.phone_number.blank? && contact_phone_number.present?
|
||||
@contact.update!(name: contact_name) if contact_name.present?
|
||||
end
|
||||
|
||||
def update_last_seen
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
class Api::V2::Accounts::ReportsController < Api::V1::Accounts::BaseController
|
||||
include Api::V2::Accounts::ReportsHelper
|
||||
before_action :check_authorization
|
||||
|
||||
def index
|
||||
|
@ -12,27 +13,23 @@ class Api::V2::Accounts::ReportsController < Api::V1::Accounts::BaseController
|
|||
end
|
||||
|
||||
def agents
|
||||
response.headers['Content-Type'] = 'text/csv'
|
||||
response.headers['Content-Disposition'] = 'attachment; filename=agents_report.csv'
|
||||
render layout: false, template: 'api/v2/accounts/reports/agents.csv.erb', format: 'csv'
|
||||
@report_data = generate_agents_report
|
||||
generate_csv('agents_report', 'api/v2/accounts/reports/agents.csv.erb')
|
||||
end
|
||||
|
||||
def inboxes
|
||||
response.headers['Content-Type'] = 'text/csv'
|
||||
response.headers['Content-Disposition'] = 'attachment; filename=inboxes_report.csv'
|
||||
render layout: false, template: 'api/v2/accounts/reports/inboxes.csv.erb', format: 'csv'
|
||||
@report_data = generate_inboxes_report
|
||||
generate_csv('inboxes_report', 'api/v2/accounts/reports/inboxes.csv.erb')
|
||||
end
|
||||
|
||||
def labels
|
||||
response.headers['Content-Type'] = 'text/csv'
|
||||
response.headers['Content-Disposition'] = 'attachment; filename=labels_report.csv'
|
||||
render layout: false, template: 'api/v2/accounts/reports/labels.csv.erb', format: 'csv'
|
||||
@report_data = generate_labels_report
|
||||
generate_csv('labels_report', 'api/v2/accounts/reports/labels.csv.erb')
|
||||
end
|
||||
|
||||
def teams
|
||||
response.headers['Content-Type'] = 'text/csv'
|
||||
response.headers['Content-Disposition'] = 'attachment; filename=teams_report.csv'
|
||||
render layout: false, template: 'api/v2/accounts/reports/teams.csv.erb', format: 'csv'
|
||||
@report_data = generate_teams_report
|
||||
generate_csv('teams_report', 'api/v2/accounts/reports/teams.csv.erb')
|
||||
end
|
||||
|
||||
def conversations
|
||||
|
@ -43,6 +40,12 @@ class Api::V2::Accounts::ReportsController < Api::V1::Accounts::BaseController
|
|||
|
||||
private
|
||||
|
||||
def generate_csv(filename, template)
|
||||
response.headers['Content-Type'] = 'text/csv'
|
||||
response.headers['Content-Disposition'] = "attachment; filename=#{filename}.csv"
|
||||
render layout: false, template: template, format: 'csv'
|
||||
end
|
||||
|
||||
def check_authorization
|
||||
raise Pundit::NotAuthorizedError unless Current.account_user.administrator?
|
||||
end
|
||||
|
|
|
@ -38,9 +38,12 @@ class DashboardController < ActionController::Base
|
|||
end
|
||||
|
||||
def app_config
|
||||
{ APP_VERSION: Chatwoot.config[:version],
|
||||
{
|
||||
APP_VERSION: Chatwoot.config[:version],
|
||||
VAPID_PUBLIC_KEY: VapidService.public_key,
|
||||
ENABLE_ACCOUNT_SIGNUP: GlobalConfigService.load('ENABLE_ACCOUNT_SIGNUP', 'false'),
|
||||
FB_APP_ID: GlobalConfigService.load('FB_APP_ID', '') }
|
||||
FB_APP_ID: GlobalConfigService.load('FB_APP_ID', ''),
|
||||
FACEBOOK_API_VERSION: 'v13.0'
|
||||
}
|
||||
end
|
||||
end
|
||||
|
|
|
@ -51,6 +51,7 @@ class ConversationFinder
|
|||
filter_by_team if @team
|
||||
filter_by_labels if params[:labels]
|
||||
filter_by_query if params[:q]
|
||||
filter_by_reply_status
|
||||
end
|
||||
|
||||
def set_inboxes
|
||||
|
@ -90,6 +91,10 @@ class ConversationFinder
|
|||
@conversations
|
||||
end
|
||||
|
||||
def filter_by_reply_status
|
||||
@conversations = @conversations.where(first_reply_created_at: nil) if params[:reply_status] == 'unattended'
|
||||
end
|
||||
|
||||
def filter_by_query
|
||||
allowed_message_types = [Message.message_types[:incoming], Message.message_types[:outgoing]]
|
||||
@conversations = conversations.joins(:messages).where('messages.content ILIKE :search', search: "%#{params[:q]}%")
|
||||
|
|
56
app/helpers/api/v2/accounts/reports_helper.rb
Normal file
56
app/helpers/api/v2/accounts/reports_helper.rb
Normal file
|
@ -0,0 +1,56 @@
|
|||
module Api::V2::Accounts::ReportsHelper
|
||||
def generate_agents_report
|
||||
Current.account.users.map do |agent|
|
||||
agent_report = generate_report({ type: :agent, id: agent.id })
|
||||
[agent.name] + generate_readable_report_metrics(agent_report)
|
||||
end
|
||||
end
|
||||
|
||||
def generate_inboxes_report
|
||||
Current.account.inboxes.map do |inbox|
|
||||
inbox_report = generate_report({ type: :inbox, id: inbox.id })
|
||||
[inbox.name, inbox.channel&.name] + generate_readable_report_metrics(inbox_report)
|
||||
end
|
||||
end
|
||||
|
||||
def generate_teams_report
|
||||
Current.account.teams.map do |team|
|
||||
team_report = generate_report({ type: :team, id: team.id })
|
||||
[team.name] + generate_readable_report_metrics(team_report)
|
||||
end
|
||||
end
|
||||
|
||||
def generate_labels_report
|
||||
Current.account.labels.map do |label|
|
||||
label_report = generate_report({ type: :label, id: label.id })
|
||||
[label.title] + generate_readable_report_metrics(label_report)
|
||||
end
|
||||
end
|
||||
|
||||
def generate_report(report_params)
|
||||
V2::ReportBuilder.new(
|
||||
Current.account,
|
||||
report_params.merge(
|
||||
{
|
||||
since: params[:since],
|
||||
until: params[:until],
|
||||
business_hours: ActiveModel::Type::Boolean.new.cast(params[:business_hours])
|
||||
}
|
||||
)
|
||||
).summary
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def generate_readable_report_metrics(report_metric)
|
||||
[
|
||||
report_metric[:conversations_count],
|
||||
time_to_minutes(report_metric[:avg_first_response_time]),
|
||||
time_to_minutes(report_metric[:avg_resolution_time])
|
||||
]
|
||||
end
|
||||
|
||||
def time_to_minutes(time_in_seconds)
|
||||
(time_in_seconds / 60).to_i
|
||||
end
|
||||
end
|
|
@ -17,30 +17,30 @@ module ReportHelper
|
|||
end
|
||||
|
||||
def conversations_count
|
||||
(get_grouped_values scope.conversations).count
|
||||
(get_grouped_values scope.conversations.where(account_id: account.id)).count
|
||||
end
|
||||
|
||||
def incoming_messages_count
|
||||
(get_grouped_values scope.messages.incoming.unscope(:order)).count
|
||||
(get_grouped_values scope.messages.where(account_id: account.id).incoming.unscope(:order)).count
|
||||
end
|
||||
|
||||
def outgoing_messages_count
|
||||
(get_grouped_values scope.messages.outgoing.unscope(:order)).count
|
||||
(get_grouped_values scope.messages.where(account_id: account.id).outgoing.unscope(:order)).count
|
||||
end
|
||||
|
||||
def resolutions_count
|
||||
(get_grouped_values scope.conversations.resolved).count
|
||||
(get_grouped_values scope.conversations.where(account_id: account.id).resolved).count
|
||||
end
|
||||
|
||||
def avg_first_response_time
|
||||
grouped_reporting_events = (get_grouped_values scope.reporting_events.where(name: 'first_response'))
|
||||
grouped_reporting_events = (get_grouped_values scope.reporting_events.where(name: 'first_response', account_id: account.id))
|
||||
return grouped_reporting_events.average(:value_in_business_hours) if params[:business_hours]
|
||||
|
||||
grouped_reporting_events.average(:value)
|
||||
end
|
||||
|
||||
def avg_resolution_time
|
||||
grouped_reporting_events = (get_grouped_values scope.reporting_events.where(name: 'conversation_resolved'))
|
||||
grouped_reporting_events = (get_grouped_values scope.reporting_events.where(name: 'conversation_resolved', account_id: account.id))
|
||||
return grouped_reporting_events.average(:value_in_business_hours) if params[:business_hours]
|
||||
|
||||
grouped_reporting_events.average(:value)
|
||||
|
@ -48,7 +48,7 @@ module ReportHelper
|
|||
|
||||
def avg_resolution_time_summary
|
||||
reporting_events = scope.reporting_events
|
||||
.where(name: 'conversation_resolved', created_at: range)
|
||||
.where(name: 'conversation_resolved', account_id: account.id, created_at: range)
|
||||
avg_rt = params[:business_hours] ? reporting_events.average(:value_in_business_hours) : reporting_events.average(:value)
|
||||
|
||||
return 0 if avg_rt.blank?
|
||||
|
@ -58,7 +58,7 @@ module ReportHelper
|
|||
|
||||
def avg_first_response_time_summary
|
||||
reporting_events = scope.reporting_events
|
||||
.where(name: 'first_response', created_at: range)
|
||||
.where(name: 'first_response', account_id: account.id, created_at: range)
|
||||
avg_frt = params[:business_hours] ? reporting_events.average(:value_in_business_hours) : reporting_events.average(:value)
|
||||
|
||||
return 0 if avg_frt.blank?
|
||||
|
|
16
app/javascript/dashboard/api/assignableAgents.js
Normal file
16
app/javascript/dashboard/api/assignableAgents.js
Normal file
|
@ -0,0 +1,16 @@
|
|||
/* global axios */
|
||||
import ApiClient from './ApiClient';
|
||||
|
||||
class AssignableAgents extends ApiClient {
|
||||
constructor() {
|
||||
super('assignable_agents', { accountScoped: true });
|
||||
}
|
||||
|
||||
get(inboxIds) {
|
||||
return axios.get(this.url, {
|
||||
params: { inbox_ids: inboxIds },
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export default new AssignableAgents();
|
|
@ -18,6 +18,17 @@ class CSATReportsAPI extends ApiClient {
|
|||
});
|
||||
}
|
||||
|
||||
download({ from, to, user_ids } = {}) {
|
||||
return axios.get(`${this.url}/download`, {
|
||||
params: {
|
||||
since: from,
|
||||
until: to,
|
||||
sort: '-created_at',
|
||||
user_ids,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
getMetrics({ from, to, user_ids } = {}) {
|
||||
return axios.get(`${this.url}/metrics`, {
|
||||
params: { since: from, until: to, user_ids },
|
||||
|
|
9
app/javascript/dashboard/api/dashboardApps.js
Normal file
9
app/javascript/dashboard/api/dashboardApps.js
Normal file
|
@ -0,0 +1,9 @@
|
|||
import ApiClient from './ApiClient';
|
||||
|
||||
class DashboardAppsAPI extends ApiClient {
|
||||
constructor() {
|
||||
super('dashboard_apps', { accountScoped: true });
|
||||
}
|
||||
}
|
||||
|
||||
export default new DashboardAppsAPI();
|
|
@ -6,10 +6,6 @@ class Inboxes extends ApiClient {
|
|||
super('inboxes', { accountScoped: true });
|
||||
}
|
||||
|
||||
getAssignableAgents(inboxId) {
|
||||
return axios.get(`${this.url}/${inboxId}/assignable_agents`);
|
||||
}
|
||||
|
||||
getCampaigns(inboxId) {
|
||||
return axios.get(`${this.url}/${inboxId}/campaigns`);
|
||||
}
|
||||
|
|
|
@ -53,27 +53,27 @@ class ReportsAPI extends ApiClient {
|
|||
});
|
||||
}
|
||||
|
||||
getAgentReports(since, until) {
|
||||
getAgentReports({ from: since, to: until, businessHours }) {
|
||||
return axios.get(`${this.url}/agents`, {
|
||||
params: { since, until },
|
||||
params: { since, until, business_hours: businessHours },
|
||||
});
|
||||
}
|
||||
|
||||
getLabelReports(since, until) {
|
||||
getLabelReports({ from: since, to: until, businessHours }) {
|
||||
return axios.get(`${this.url}/labels`, {
|
||||
params: { since, until },
|
||||
params: { since, until, business_hours: businessHours },
|
||||
});
|
||||
}
|
||||
|
||||
getInboxReports(since, until) {
|
||||
getInboxReports({ from: since, to: until, businessHours }) {
|
||||
return axios.get(`${this.url}/inboxes`, {
|
||||
params: { since, until },
|
||||
params: { since, until, business_hours: businessHours },
|
||||
});
|
||||
}
|
||||
|
||||
getTeamReports(since, until) {
|
||||
getTeamReports({ from: since, to: until, businessHours }) {
|
||||
return axios.get(`${this.url}/teams`, {
|
||||
params: { since, until },
|
||||
params: { since, until, business_hours: businessHours },
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
18
app/javascript/dashboard/api/specs/assignableAgents.spec.js
Normal file
18
app/javascript/dashboard/api/specs/assignableAgents.spec.js
Normal file
|
@ -0,0 +1,18 @@
|
|||
import assignableAgentsAPI from '../assignableAgents';
|
||||
import describeWithAPIMock from './apiSpecHelper';
|
||||
|
||||
describe('#AssignableAgentsAPI', () => {
|
||||
describeWithAPIMock('API calls', context => {
|
||||
it('#getAssignableAgents', () => {
|
||||
assignableAgentsAPI.get([1]);
|
||||
expect(context.axiosMock.get).toHaveBeenCalledWith(
|
||||
'/api/v1/assignable_agents',
|
||||
{
|
||||
params: {
|
||||
inbox_ids: [1],
|
||||
},
|
||||
}
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
|
@ -33,5 +33,23 @@ describe('#Reports API', () => {
|
|||
}
|
||||
);
|
||||
});
|
||||
it('#download', () => {
|
||||
csatReportsAPI.download({
|
||||
from: 1622485800,
|
||||
to: 1623695400,
|
||||
user_ids: 1,
|
||||
});
|
||||
expect(context.axiosMock.get).toHaveBeenCalledWith(
|
||||
'/api/v1/csat_survey_responses/download',
|
||||
{
|
||||
params: {
|
||||
since: 1622485800,
|
||||
until: 1623695400,
|
||||
user_ids: 1,
|
||||
sort: '-created_at',
|
||||
},
|
||||
}
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
13
app/javascript/dashboard/api/specs/dashboardApps.spec.js
Normal file
13
app/javascript/dashboard/api/specs/dashboardApps.spec.js
Normal file
|
@ -0,0 +1,13 @@
|
|||
import dashboardAppsAPI from '../dashboardApps';
|
||||
import ApiClient from '../ApiClient';
|
||||
|
||||
describe('#dashboardAppsAPI', () => {
|
||||
it('creates correct instance', () => {
|
||||
expect(dashboardAppsAPI).toBeInstanceOf(ApiClient);
|
||||
expect(dashboardAppsAPI).toHaveProperty('get');
|
||||
expect(dashboardAppsAPI).toHaveProperty('show');
|
||||
expect(dashboardAppsAPI).toHaveProperty('create');
|
||||
expect(dashboardAppsAPI).toHaveProperty('update');
|
||||
expect(dashboardAppsAPI).toHaveProperty('delete');
|
||||
});
|
||||
});
|
|
@ -10,17 +10,9 @@ describe('#InboxesAPI', () => {
|
|||
expect(inboxesAPI).toHaveProperty('create');
|
||||
expect(inboxesAPI).toHaveProperty('update');
|
||||
expect(inboxesAPI).toHaveProperty('delete');
|
||||
expect(inboxesAPI).toHaveProperty('getAssignableAgents');
|
||||
expect(inboxesAPI).toHaveProperty('getCampaigns');
|
||||
});
|
||||
describeWithAPIMock('API calls', context => {
|
||||
it('#getAssignableAgents', () => {
|
||||
inboxesAPI.getAssignableAgents(1);
|
||||
expect(context.axiosMock.get).toHaveBeenCalledWith(
|
||||
'/api/v1/inboxes/1/assignable_agents'
|
||||
);
|
||||
});
|
||||
|
||||
it('#getCampaigns', () => {
|
||||
inboxesAPI.getCampaigns(2);
|
||||
expect(context.axiosMock.get).toHaveBeenCalledWith(
|
||||
|
|
|
@ -47,20 +47,25 @@ describe('#Reports API', () => {
|
|||
});
|
||||
|
||||
it('#getAgentReports', () => {
|
||||
reportsAPI.getAgentReports(1621103400, 1621621800);
|
||||
reportsAPI.getAgentReports({
|
||||
from: 1621103400,
|
||||
to: 1621621800,
|
||||
businessHours: true,
|
||||
});
|
||||
expect(context.axiosMock.get).toHaveBeenCalledWith(
|
||||
'/api/v2/reports/agents',
|
||||
{
|
||||
params: {
|
||||
since: 1621103400,
|
||||
until: 1621621800,
|
||||
business_hours: true,
|
||||
},
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
it('#getLabelReports', () => {
|
||||
reportsAPI.getLabelReports(1621103400, 1621621800);
|
||||
reportsAPI.getLabelReports({ from: 1621103400, to: 1621621800 });
|
||||
expect(context.axiosMock.get).toHaveBeenCalledWith(
|
||||
'/api/v2/reports/labels',
|
||||
{
|
||||
|
@ -73,7 +78,7 @@ describe('#Reports API', () => {
|
|||
});
|
||||
|
||||
it('#getInboxReports', () => {
|
||||
reportsAPI.getInboxReports(1621103400, 1621621800);
|
||||
reportsAPI.getInboxReports({ from: 1621103400, to: 1621621800 });
|
||||
expect(context.axiosMock.get).toHaveBeenCalledWith(
|
||||
'/api/v2/reports/inboxes',
|
||||
{
|
||||
|
@ -86,7 +91,7 @@ describe('#Reports API', () => {
|
|||
});
|
||||
|
||||
it('#getTeamReports', () => {
|
||||
reportsAPI.getTeamReports(1621103400, 1621621800);
|
||||
reportsAPI.getTeamReports({ from: 1621103400, to: 1621621800 });
|
||||
expect(context.axiosMock.get).toHaveBeenCalledWith(
|
||||
'/api/v2/reports/teams',
|
||||
{
|
||||
|
|
|
@ -235,11 +235,16 @@ export default {
|
|||
return {};
|
||||
},
|
||||
assigneeTabItems() {
|
||||
return this.$t('CHAT_LIST.ASSIGNEE_TYPE_TABS').map(item => {
|
||||
const count = this.conversationStats[item.COUNT_KEY] || 0;
|
||||
const ASSIGNEE_TYPE_TAB_KEYS = {
|
||||
me: 'mineCount',
|
||||
unassigned: 'unAssignedCount',
|
||||
all: 'allCount',
|
||||
};
|
||||
return Object.keys(ASSIGNEE_TYPE_TAB_KEYS).map(key => {
|
||||
const count = this.conversationStats[ASSIGNEE_TYPE_TAB_KEYS[key]] || 0;
|
||||
return {
|
||||
key: item.KEY,
|
||||
name: item.NAME,
|
||||
key,
|
||||
name: this.$t(`CHAT_LIST.ASSIGNEE_TYPE_TABS.${key}`),
|
||||
count,
|
||||
};
|
||||
});
|
||||
|
|
|
@ -0,0 +1,64 @@
|
|||
<template>
|
||||
<div class="dashboard-app--container">
|
||||
<div
|
||||
v-for="(configItem, index) in config"
|
||||
:key="index"
|
||||
class="dashboard-app--list"
|
||||
>
|
||||
<iframe
|
||||
v-if="configItem.type === 'frame' && configItem.url"
|
||||
:id="`dashboard-app--frame-${index}`"
|
||||
:src="configItem.url"
|
||||
@load="() => onIframeLoad(index)"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
config: {
|
||||
type: Array,
|
||||
default: () => [],
|
||||
},
|
||||
currentChat: {
|
||||
type: Object,
|
||||
default: () => ({}),
|
||||
},
|
||||
},
|
||||
computed: {
|
||||
dashboardAppContext() {
|
||||
return {
|
||||
conversation: this.currentChat,
|
||||
contact: this.$store.getters['contacts/getContact'](this.contactId),
|
||||
};
|
||||
},
|
||||
contactId() {
|
||||
return this.currentChat?.meta?.sender?.id;
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
onIframeLoad(index) {
|
||||
const frameElement = document.getElementById(
|
||||
`dashboard-app--frame-${index}`
|
||||
);
|
||||
const eventData = { event: 'appContext', data: this.dashboardAppContext };
|
||||
frameElement.contentWindow.postMessage(JSON.stringify(eventData), '*');
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.dashboard-app--container,
|
||||
.dashboard-app--list,
|
||||
.dashboard-app--list iframe {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.dashboard-app--list iframe {
|
||||
border: 0;
|
||||
}
|
||||
</style>
|
|
@ -6,7 +6,20 @@
|
|||
:is-contact-panel-open="isContactPanelOpen"
|
||||
@contact-panel-toggle="onToggleContactPanel"
|
||||
/>
|
||||
<div class="messages-and-sidebar">
|
||||
<woot-tabs
|
||||
v-if="dashboardApps.length && currentChat.id"
|
||||
:index="activeIndex"
|
||||
class="dashboard-app--tabs"
|
||||
@change="onDashboardAppTabChange"
|
||||
>
|
||||
<woot-tabs-item
|
||||
v-for="tab in dashboardAppTabs"
|
||||
:key="tab.key"
|
||||
:name="tab.name"
|
||||
:show-badge="false"
|
||||
/>
|
||||
</woot-tabs>
|
||||
<div v-if="!activeIndex" class="messages-and-sidebar">
|
||||
<messages-view
|
||||
v-if="currentChat.id"
|
||||
:inbox-id="inboxId"
|
||||
|
@ -14,7 +27,6 @@
|
|||
@contact-panel-toggle="onToggleContactPanel"
|
||||
/>
|
||||
<empty-state v-else />
|
||||
|
||||
<div v-show="showContactPanel" class="conversation-sidebar-wrap">
|
||||
<contact-panel
|
||||
v-if="showContactPanel"
|
||||
|
@ -24,21 +36,29 @@
|
|||
/>
|
||||
</div>
|
||||
</div>
|
||||
<dashboard-app-frame
|
||||
v-else
|
||||
:key="currentChat.id"
|
||||
:config="dashboardApps[activeIndex - 1].content"
|
||||
:current-chat="currentChat"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { mapGetters } from 'vuex';
|
||||
import ContactPanel from 'dashboard/routes/dashboard/conversation/ContactPanel';
|
||||
import ConversationHeader from './ConversationHeader';
|
||||
import DashboardAppFrame from '../DashboardApp/Frame.vue';
|
||||
import EmptyState from './EmptyState';
|
||||
import MessagesView from './MessagesView';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
EmptyState,
|
||||
MessagesView,
|
||||
ContactPanel,
|
||||
ConversationHeader,
|
||||
DashboardAppFrame,
|
||||
EmptyState,
|
||||
MessagesView,
|
||||
},
|
||||
|
||||
props: {
|
||||
|
@ -52,8 +72,26 @@ export default {
|
|||
default: true,
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return { activeIndex: 0 };
|
||||
},
|
||||
computed: {
|
||||
...mapGetters({ currentChat: 'getSelectedChat' }),
|
||||
...mapGetters({
|
||||
currentChat: 'getSelectedChat',
|
||||
dashboardApps: 'dashboardApps/getRecords',
|
||||
}),
|
||||
dashboardAppTabs() {
|
||||
return [
|
||||
{
|
||||
key: 'messages',
|
||||
name: this.$t('CONVERSATION.DASHBOARD_APP_TAB_MESSAGES'),
|
||||
},
|
||||
...this.dashboardApps.map(dashboardApp => ({
|
||||
key: `dashboard-${dashboardApp.id}`,
|
||||
name: dashboardApp.title,
|
||||
})),
|
||||
];
|
||||
},
|
||||
showContactPanel() {
|
||||
return this.isContactPanelOpen && this.currentChat.id;
|
||||
},
|
||||
|
@ -70,6 +108,7 @@ export default {
|
|||
},
|
||||
mounted() {
|
||||
this.fetchLabels();
|
||||
this.$store.dispatch('dashboardApps/get');
|
||||
},
|
||||
methods: {
|
||||
fetchLabels() {
|
||||
|
@ -81,6 +120,9 @@ export default {
|
|||
onToggleContactPanel() {
|
||||
this.$emit('contact-panel-toggle');
|
||||
},
|
||||
onDashboardAppTabChange(index) {
|
||||
this.activeIndex = index;
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
@ -96,6 +138,11 @@ export default {
|
|||
background: var(--color-background-light);
|
||||
}
|
||||
|
||||
.dashboard-app--tabs {
|
||||
background: var(--white);
|
||||
margin-top: -1px;
|
||||
}
|
||||
|
||||
.messages-and-sidebar {
|
||||
display: flex;
|
||||
background: var(--color-background-light);
|
||||
|
|
|
@ -29,8 +29,11 @@ export default {
|
|||
},
|
||||
computed: {
|
||||
fileName() {
|
||||
if (this.url) {
|
||||
const filename = this.url.substring(this.url.lastIndexOf('/') + 1);
|
||||
return filename;
|
||||
return filename || this.$t('CONVERSATION.UNKNOWN_FILE_TYPE');
|
||||
}
|
||||
return this.$t('CONVERSATION.UNKNOWN_FILE_TYPE');
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
|
|
|
@ -1,6 +0,0 @@
|
|||
export const downloadCsvFile = (fileName, fileContent) => {
|
||||
const link = document.createElement('a');
|
||||
link.download = fileName;
|
||||
link.href = `data:text/csv;charset=utf-8,` + encodeURI(fileContent);
|
||||
link.click();
|
||||
};
|
22
app/javascript/dashboard/helper/downloadHelper.js
Normal file
22
app/javascript/dashboard/helper/downloadHelper.js
Normal file
|
@ -0,0 +1,22 @@
|
|||
import fromUnixTime from 'date-fns/fromUnixTime';
|
||||
import format from 'date-fns/format';
|
||||
|
||||
export const downloadCsvFile = (fileName, content) => {
|
||||
const contentType = 'data:text/csv;charset=utf-8;';
|
||||
const blob = new Blob([content], { type: contentType });
|
||||
const url = URL.createObjectURL(blob);
|
||||
|
||||
const link = document.createElement('a');
|
||||
link.setAttribute('download', fileName);
|
||||
link.setAttribute('href', url);
|
||||
link.click();
|
||||
return link;
|
||||
};
|
||||
|
||||
export const generateFileName = ({ type, to, businessHours = false }) => {
|
||||
let name = `${type}-report-${format(fromUnixTime(to), 'dd-MM-yyyy')}`;
|
||||
if (businessHours) {
|
||||
name = `${name}-business-hours`;
|
||||
}
|
||||
return `${name}.csv`;
|
||||
};
|
|
@ -1,25 +0,0 @@
|
|||
export const createMessengerScript = pageId => `
|
||||
<script>
|
||||
window.fbAsyncInit = function() {
|
||||
FB.init({
|
||||
appId: "${window.chatwootConfig.fbAppId}",
|
||||
xfbml: true,
|
||||
version: "v4.0"
|
||||
});
|
||||
};
|
||||
(function(d, s, id){
|
||||
var js, fjs = d.getElementsByTagName(s)[0];
|
||||
if (d.getElementById(id)) { return; }
|
||||
js = d.createElement(s); js.id = id;
|
||||
js.src = "//connect.facebook.net/en_US/sdk.js";
|
||||
fjs.parentNode.insertBefore(js, fjs);
|
||||
}(document, 'script', 'facebook-jssdk'));
|
||||
|
||||
</script>
|
||||
<div class="fb-messengermessageus"
|
||||
messenger_app_id="${window.chatwootConfig.fbAppId}"
|
||||
page_id="${pageId}"
|
||||
color="blue"
|
||||
size="standard" >
|
||||
</div>
|
||||
`;
|
|
@ -1,21 +0,0 @@
|
|||
import { downloadCsvFile } from '../downloadCsvFile';
|
||||
|
||||
const fileName = 'test.csv';
|
||||
const fileData = `Agent name,Conversations count,Avg first response time (Minutes),Avg resolution time (Minutes)
|
||||
Pranav,36,114,28411`;
|
||||
|
||||
describe('#downloadCsvFile', () => {
|
||||
it('should download the csv file', () => {
|
||||
const link = {
|
||||
click: jest.fn(),
|
||||
};
|
||||
jest.spyOn(document, 'createElement').mockImplementation(() => link);
|
||||
|
||||
downloadCsvFile(fileName, fileData);
|
||||
expect(link.download).toEqual(fileName);
|
||||
expect(link.href).toEqual(
|
||||
`data:text/csv;charset=utf-8,${encodeURI(fileData)}`
|
||||
);
|
||||
expect(link.click).toHaveBeenCalledTimes(1);
|
||||
});
|
||||
});
|
13
app/javascript/dashboard/helper/specs/downloadHelper.spec.js
Normal file
13
app/javascript/dashboard/helper/specs/downloadHelper.spec.js
Normal file
|
@ -0,0 +1,13 @@
|
|||
import { generateFileName } from '../downloadHelper';
|
||||
|
||||
describe('#generateFileName', () => {
|
||||
it('should generate the correct file name', () => {
|
||||
expect(generateFileName({ type: 'csat', to: 1652812199 })).toEqual(
|
||||
'csat-report-17-05-2022.csv'
|
||||
);
|
||||
|
||||
expect(
|
||||
generateFileName({ type: 'csat', to: 1652812199, businessHours: true })
|
||||
).toEqual('csat-report-17-05-2022-business-hours.csv');
|
||||
});
|
||||
});
|
|
@ -12,33 +12,11 @@
|
|||
"INPUT": "البحث عن جهات الاتصال، المحادثات، قوالب الردود الجاهزة .."
|
||||
},
|
||||
"FILTER_ALL": "الكل",
|
||||
"STATUS_TABS": [
|
||||
{
|
||||
"NAME": "فتح",
|
||||
"KEY": "openCount"
|
||||
"ASSIGNEE_TYPE_TABS": {
|
||||
"me": "محادثاتي",
|
||||
"unassigned": "غير مسند",
|
||||
"all": "الكل"
|
||||
},
|
||||
{
|
||||
"NAME": "مغلقة",
|
||||
"KEY": "allConvCount"
|
||||
}
|
||||
],
|
||||
"ASSIGNEE_TYPE_TABS": [
|
||||
{
|
||||
"NAME": "محادثاتي",
|
||||
"KEY": "me",
|
||||
"COUNT_KEY": "mineCount"
|
||||
},
|
||||
{
|
||||
"NAME": "غير مسند",
|
||||
"KEY": "unassigned",
|
||||
"COUNT_KEY": "unAssignedCount"
|
||||
},
|
||||
{
|
||||
"NAME": "الكل",
|
||||
"KEY": "all",
|
||||
"COUNT_KEY": "allCount"
|
||||
}
|
||||
],
|
||||
"CHAT_STATUS_FILTER_ITEMS": {
|
||||
"open": {
|
||||
"TEXT": "فتح"
|
||||
|
|
|
@ -341,10 +341,6 @@
|
|||
"AUTO_ASSIGNMENT_SUCCESS_MESSAGE": "تم تحديث إعدادات الإسناد التلقائي بنجاح",
|
||||
"ERROR_MESSAGE": "تعذر تحديث لون صندوق الدردشة. الرجاء المحاولة مرة أخرى لاحقاً."
|
||||
},
|
||||
"AUTO_ASSIGNMENT": {
|
||||
"ENABLED": "مفعل",
|
||||
"DISABLED": "معطّل"
|
||||
},
|
||||
"EMAIL_COLLECT_BOX": {
|
||||
"ENABLED": "مفعل",
|
||||
"DISABLED": "معطّل"
|
||||
|
@ -402,6 +398,8 @@
|
|||
"MESSENGER_SUB_HEAD": "ضع هذا الكود داخل وسم الـ body في موقعك",
|
||||
"INBOX_AGENTS": "موظف الدعم",
|
||||
"INBOX_AGENTS_SUB_TEXT": "إضافة أو إزالة موظفين من قناة التواصل هذه",
|
||||
"AGENT_ASSIGNMENT": "إسناد المحادثات",
|
||||
"AGENT_ASSIGNMENT_SUB_TEXT": "تحديث إعدادات إسناد المحادثات",
|
||||
"UPDATE": "تحديث",
|
||||
"ENABLE_EMAIL_COLLECT_BOX": "تفعيل صندوق جمع البريد الإلكتروني",
|
||||
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "تمكين أو تعطيل مربع جمع البريد الإلكتروني في محادثة جديدة",
|
||||
|
|
|
@ -386,6 +386,7 @@
|
|||
"CSAT_REPORTS": {
|
||||
"HEADER": "تقارير CSAT",
|
||||
"NO_RECORDS": "لا توجد ردود متوفرة على الدراسة الاستقصائية CSAT.",
|
||||
"DOWNLOAD": "تحميل تقرير رضاء خدمة العملاء",
|
||||
"FILTERS": {
|
||||
"AGENTS": {
|
||||
"PLACEHOLDER": "اختر الوكلاء"
|
||||
|
|
|
@ -151,7 +151,7 @@
|
|||
},
|
||||
"SIDEBAR": {
|
||||
"CURRENTLY_VIEWING_ACCOUNT": "مشاهدة حاليا:",
|
||||
"SWITCH": "Switch",
|
||||
"SWITCH": "تبديل",
|
||||
"CONVERSATIONS": "المحادثات",
|
||||
"ALL_CONVERSATIONS": "كل المحادثات",
|
||||
"MENTIONED_CONVERSATIONS": "الإشارات",
|
||||
|
|
|
@ -12,33 +12,11 @@
|
|||
"INPUT": "Търсене на хора, чатове, запазени отговори .."
|
||||
},
|
||||
"FILTER_ALL": "Всички",
|
||||
"STATUS_TABS": [
|
||||
{
|
||||
"NAME": "Отворен",
|
||||
"KEY": "openCount"
|
||||
"ASSIGNEE_TYPE_TABS": {
|
||||
"me": "Мой",
|
||||
"unassigned": "Неназначен",
|
||||
"all": "Всички"
|
||||
},
|
||||
{
|
||||
"NAME": "Разрешен",
|
||||
"KEY": "allConvCount"
|
||||
}
|
||||
],
|
||||
"ASSIGNEE_TYPE_TABS": [
|
||||
{
|
||||
"NAME": "Мой",
|
||||
"KEY": "me",
|
||||
"COUNT_KEY": "mineCount"
|
||||
},
|
||||
{
|
||||
"NAME": "Неназначен",
|
||||
"KEY": "unassigned",
|
||||
"COUNT_KEY": "unAssignedCount"
|
||||
},
|
||||
{
|
||||
"NAME": "Всички",
|
||||
"KEY": "all",
|
||||
"COUNT_KEY": "allCount"
|
||||
}
|
||||
],
|
||||
"CHAT_STATUS_FILTER_ITEMS": {
|
||||
"open": {
|
||||
"TEXT": "Отворен"
|
||||
|
|
|
@ -341,10 +341,6 @@
|
|||
"AUTO_ASSIGNMENT_SUCCESS_MESSAGE": "Auto assignment updated successfully",
|
||||
"ERROR_MESSAGE": "Could not update widget color. Please try again later."
|
||||
},
|
||||
"AUTO_ASSIGNMENT": {
|
||||
"ENABLED": "Enabled",
|
||||
"DISABLED": "Disabled"
|
||||
},
|
||||
"EMAIL_COLLECT_BOX": {
|
||||
"ENABLED": "Enabled",
|
||||
"DISABLED": "Disabled"
|
||||
|
@ -402,6 +398,8 @@
|
|||
"MESSENGER_SUB_HEAD": "Place this button inside your body tag",
|
||||
"INBOX_AGENTS": "Агенти",
|
||||
"INBOX_AGENTS_SUB_TEXT": "Add or remove agents from this inbox",
|
||||
"AGENT_ASSIGNMENT": "Conversation Assignment",
|
||||
"AGENT_ASSIGNMENT_SUB_TEXT": "Update conversation assignment settings",
|
||||
"UPDATE": "Update",
|
||||
"ENABLE_EMAIL_COLLECT_BOX": "Enable email collect box",
|
||||
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Enable or disable email collect box on new conversation",
|
||||
|
|
|
@ -386,6 +386,7 @@
|
|||
"CSAT_REPORTS": {
|
||||
"HEADER": "CSAT Reports",
|
||||
"NO_RECORDS": "There are no CSAT survey responses available.",
|
||||
"DOWNLOAD": "Download CSAT Reports",
|
||||
"FILTERS": {
|
||||
"AGENTS": {
|
||||
"PLACEHOLDER": "Choose Agents"
|
||||
|
|
|
@ -12,33 +12,11 @@
|
|||
"INPUT": "Cerca persones, xats, respostes desades .."
|
||||
},
|
||||
"FILTER_ALL": "Totes",
|
||||
"STATUS_TABS": [
|
||||
{
|
||||
"NAME": "Obrir",
|
||||
"KEY": "openCount"
|
||||
"ASSIGNEE_TYPE_TABS": {
|
||||
"me": "Meves",
|
||||
"unassigned": "Sense assignar",
|
||||
"all": "Totes"
|
||||
},
|
||||
{
|
||||
"NAME": "Resoltes",
|
||||
"KEY": "allConvCount"
|
||||
}
|
||||
],
|
||||
"ASSIGNEE_TYPE_TABS": [
|
||||
{
|
||||
"NAME": "Meves",
|
||||
"KEY": "me",
|
||||
"COUNT_KEY": "mineCount"
|
||||
},
|
||||
{
|
||||
"NAME": "Sense assignar",
|
||||
"KEY": "unassigned",
|
||||
"COUNT_KEY": "unAssignedCount"
|
||||
},
|
||||
{
|
||||
"NAME": "Totes",
|
||||
"KEY": "all",
|
||||
"COUNT_KEY": "allCount"
|
||||
}
|
||||
],
|
||||
"CHAT_STATUS_FILTER_ITEMS": {
|
||||
"open": {
|
||||
"TEXT": "Obrir"
|
||||
|
|
|
@ -341,10 +341,6 @@
|
|||
"AUTO_ASSIGNMENT_SUCCESS_MESSAGE": "Assignació automàtica actualitzada correctament",
|
||||
"ERROR_MESSAGE": "No s'ha pogut actualitzar el color del widget. Torneu-ho a provar més endavant."
|
||||
},
|
||||
"AUTO_ASSIGNMENT": {
|
||||
"ENABLED": "Habilita",
|
||||
"DISABLED": "Inhabilita"
|
||||
},
|
||||
"EMAIL_COLLECT_BOX": {
|
||||
"ENABLED": "Habilita",
|
||||
"DISABLED": "Inhabilita"
|
||||
|
@ -402,6 +398,8 @@
|
|||
"MESSENGER_SUB_HEAD": "Col·loca aquest botó dins de l'etiqueta body",
|
||||
"INBOX_AGENTS": "Agents",
|
||||
"INBOX_AGENTS_SUB_TEXT": "Afegir o eliminar agents d'aquesta safata d'entrada",
|
||||
"AGENT_ASSIGNMENT": "Conversation Assignment",
|
||||
"AGENT_ASSIGNMENT_SUB_TEXT": "Update conversation assignment settings",
|
||||
"UPDATE": "Actualitza",
|
||||
"ENABLE_EMAIL_COLLECT_BOX": "Enable email collect box",
|
||||
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Enable or disable email collect box on new conversation",
|
||||
|
|
|
@ -386,6 +386,7 @@
|
|||
"CSAT_REPORTS": {
|
||||
"HEADER": "CSAT Reports",
|
||||
"NO_RECORDS": "There are no CSAT survey responses available.",
|
||||
"DOWNLOAD": "Download CSAT Reports",
|
||||
"FILTERS": {
|
||||
"AGENTS": {
|
||||
"PLACEHOLDER": "Choose Agents"
|
||||
|
|
|
@ -7,38 +7,16 @@
|
|||
"404": "V této skupině nejsou žádné aktivní konverzace."
|
||||
},
|
||||
"TAB_HEADING": "Konverzace",
|
||||
"MENTION_HEADING": "Mentions",
|
||||
"MENTION_HEADING": "Zmínka",
|
||||
"SEARCH": {
|
||||
"INPUT": "Hledat lidi, chaty, Uložené odpovědi .."
|
||||
},
|
||||
"FILTER_ALL": "Vše",
|
||||
"STATUS_TABS": [
|
||||
{
|
||||
"NAME": "Otevřít",
|
||||
"KEY": "openCount"
|
||||
"ASSIGNEE_TYPE_TABS": {
|
||||
"me": "Mine",
|
||||
"unassigned": "Nepřiřazeno",
|
||||
"all": "Vše"
|
||||
},
|
||||
{
|
||||
"NAME": "Vyřešeno",
|
||||
"KEY": "allConvCount"
|
||||
}
|
||||
],
|
||||
"ASSIGNEE_TYPE_TABS": [
|
||||
{
|
||||
"NAME": "Důl",
|
||||
"KEY": "me",
|
||||
"COUNT_KEY": "mineCount"
|
||||
},
|
||||
{
|
||||
"NAME": "Nepřiřazeno",
|
||||
"KEY": "unassigned",
|
||||
"COUNT_KEY": "unAssignedCount"
|
||||
},
|
||||
{
|
||||
"NAME": "Vše",
|
||||
"KEY": "all",
|
||||
"COUNT_KEY": "allCount"
|
||||
}
|
||||
],
|
||||
"CHAT_STATUS_FILTER_ITEMS": {
|
||||
"open": {
|
||||
"TEXT": "Otevřít"
|
||||
|
@ -76,12 +54,12 @@
|
|||
"RECEIVED_VIA_EMAIL": "Obdrženo e-mailem",
|
||||
"VIEW_TWEET_IN_TWITTER": "Zobrazit tweet na Twitteru",
|
||||
"REPLY_TO_TWEET": "Odpovědět na tento tweet",
|
||||
"LINK_TO_STORY": "Go to instagram story",
|
||||
"LINK_TO_STORY": "Přejít na instagram příběh",
|
||||
"SENT": "Sent successfully",
|
||||
"NO_MESSAGES": "Žádné zprávy",
|
||||
"NO_CONTENT": "Žádný obsah k dispozici",
|
||||
"HIDE_QUOTED_TEXT": "Hide Quoted Text",
|
||||
"SHOW_QUOTED_TEXT": "Show Quoted Text",
|
||||
"MESSAGE_READ": "Read"
|
||||
"MESSAGE_READ": "Přečteno"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"CONVERSATION": {
|
||||
"404": "Vyberte prosím konverzaci z levého panelu",
|
||||
"UNVERIFIED_SESSION": "The identity of this user is not verified",
|
||||
"UNVERIFIED_SESSION": "Identita tohoto uživatele není ověřena",
|
||||
"NO_MESSAGE_1": "Ale ne! Vypadá to, že ve vaší schránce nejsou žádné zprávy od zákazníků.",
|
||||
"NO_MESSAGE_2": " pro odeslání zprávy na vaši stránku!",
|
||||
"NO_INBOX_1": "Hola! Zdá se, že jste ještě nepřidali žádné schránky.",
|
||||
|
@ -22,17 +22,17 @@
|
|||
"LOADING_CONVERSATIONS": "Načítání konverzací",
|
||||
"CANNOT_REPLY": "Nemůžete odpovědět z důvodu",
|
||||
"24_HOURS_WINDOW": "24 hodinové omezení okna",
|
||||
"NOT_ASSIGNED_TO_YOU": "This conversation is not assigned to you. Would you like to assign this conversation to yourself?",
|
||||
"NOT_ASSIGNED_TO_YOU": "Tato konverzace vám není přiřazena. Chcete si přiřadit tuto konverzaci?",
|
||||
"ASSIGN_TO_ME": "Přiřadit mi",
|
||||
"TWILIO_WHATSAPP_CAN_REPLY": "You can only reply to this conversation using a template message due to",
|
||||
"TWILIO_WHATSAPP_CAN_REPLY": "Na tuto konverzaci můžete odpovědět pouze pomocí šablony zprávy z důvodu",
|
||||
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "24 hodinové omezení okna",
|
||||
"SELECT_A_TWEET_TO_REPLY": "Please select a tweet to reply to.",
|
||||
"SELECT_A_TWEET_TO_REPLY": "Vyberte prosím tweet, na který chcete odpovědět.",
|
||||
"REPLYING_TO": "Odpovídáte uživateli:",
|
||||
"REMOVE_SELECTION": "Odstranit výběr",
|
||||
"DOWNLOAD": "Stáhnout",
|
||||
"UPLOADING_ATTACHMENTS": "Nahrávání příloh...",
|
||||
"SUCCESS_DELETE_MESSAGE": "Zpráva byla úspěšně smazána",
|
||||
"FAIL_DELETE_MESSSAGE": "Couldn't delete message! Try again",
|
||||
"FAIL_DELETE_MESSSAGE": "Zpráva se nepodařilo odstranit! Zkuste to znovu",
|
||||
"NO_RESPONSE": "Bez odpovědi",
|
||||
"RATING_TITLE": "Hodnocení",
|
||||
"FEEDBACK_TITLE": "Zpětná vazba",
|
||||
|
@ -43,12 +43,12 @@
|
|||
"OPEN": "Více",
|
||||
"CLOSE": "Zavřít",
|
||||
"DETAILS": "Podrobnosti",
|
||||
"SNOOZED_UNTIL_TOMORROW": "Snoozed until tomorrow",
|
||||
"SNOOZED_UNTIL_NEXT_WEEK": "Snoozed until next week",
|
||||
"SNOOZED_UNTIL_NEXT_REPLY": "Snoozed until next reply"
|
||||
"SNOOZED_UNTIL_TOMORROW": "Odloženo do zítřka",
|
||||
"SNOOZED_UNTIL_NEXT_WEEK": "Odloženo do příštího týdne",
|
||||
"SNOOZED_UNTIL_NEXT_REPLY": "Odloženo do další odpovědi"
|
||||
},
|
||||
"RESOLVE_DROPDOWN": {
|
||||
"MARK_PENDING": "Mark as pending",
|
||||
"MARK_PENDING": "Označit jako nevyřízené",
|
||||
"SNOOZE": {
|
||||
"TITLE": "Odložit do",
|
||||
"NEXT_REPLY": "Další odpověď",
|
||||
|
@ -57,13 +57,13 @@
|
|||
}
|
||||
},
|
||||
"FOOTER": {
|
||||
"MESSAGE_SIGN_TOOLTIP": "Message signature",
|
||||
"ENABLE_SIGN_TOOLTIP": "Enable signature",
|
||||
"DISABLE_SIGN_TOOLTIP": "Disable signature",
|
||||
"MESSAGE_SIGN_TOOLTIP": "Podpis zprávy",
|
||||
"ENABLE_SIGN_TOOLTIP": "Povolit podpis",
|
||||
"DISABLE_SIGN_TOOLTIP": "Zakázat podpis",
|
||||
"MSG_INPUT": "Shift + zadejte pro nový řádek. Začněte '/' pro výběr zrušené odpovědi.",
|
||||
"PRIVATE_MSG_INPUT": "Shift + zadejte pro nový řádek. Toto bude viditelné pouze pro agenty",
|
||||
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Message signature is not configured, please configure it in profile settings.",
|
||||
"CLICK_HERE": "Click here to update"
|
||||
"CLICK_HERE": "Klikněte zde pro aktualizaci"
|
||||
},
|
||||
"REPLYBOX": {
|
||||
"REPLY": "Odpověď",
|
||||
|
@ -74,13 +74,13 @@
|
|||
"TIP_FORMAT_ICON": "Zobrazit formátovaný textový editor",
|
||||
"TIP_EMOJI_ICON": "Zobrazit výběr emoji",
|
||||
"TIP_ATTACH_ICON": "Přiložit soubory",
|
||||
"TIP_AUDIORECORDER_ICON": "Record audio",
|
||||
"TIP_AUDIORECORDER_PERMISSION": "Allow access to audio",
|
||||
"TIP_AUDIORECORDER_ERROR": "Could not open the audio",
|
||||
"ENTER_TO_SEND": "Enter to send",
|
||||
"DRAG_DROP": "Drag and drop here to attach",
|
||||
"START_AUDIO_RECORDING": "Start audio recording",
|
||||
"STOP_AUDIO_RECORDING": "Stop audio recording",
|
||||
"TIP_AUDIORECORDER_ICON": "Nahrát zvuk",
|
||||
"TIP_AUDIORECORDER_PERMISSION": "Povolit přístup ke zvuku",
|
||||
"TIP_AUDIORECORDER_ERROR": "Zvuk se nepodařilo otevřít",
|
||||
"ENTER_TO_SEND": "Enterem odeslat",
|
||||
"DRAG_DROP": "Přetažením sem připojíte",
|
||||
"START_AUDIO_RECORDING": "Spustit nahrávání zvuku",
|
||||
"STOP_AUDIO_RECORDING": "Zastavit nahrávání zvuku",
|
||||
"": "",
|
||||
"EMAIL_HEAD": {
|
||||
"ADD_BCC": "Přidat bcc",
|
||||
|
@ -101,11 +101,11 @@
|
|||
"CHANGE_AGENT": "Konverzace pověřená osoba změněna",
|
||||
"CHANGE_TEAM": "Tým konverzace se změnil",
|
||||
"FILE_SIZE_LIMIT": "Soubor překračuje limit {MAXIMUM_FILE_UPLOAD_SIZE} přílohy",
|
||||
"MESSAGE_ERROR": "Unable to send this message, please try again later",
|
||||
"MESSAGE_ERROR": "Nepodařilo se odeslat tuto zprávu, zkuste to prosím později",
|
||||
"SENT_BY": "Odeslal:",
|
||||
"BOT": "Bot",
|
||||
"SEND_FAILED": "Couldn't send message! Try again",
|
||||
"TRY_AGAIN": "retry",
|
||||
"SEND_FAILED": "Odeslání zprávy se nezdařilo! Zkuste to znovu",
|
||||
"TRY_AGAIN": "opakovat",
|
||||
"ASSIGNMENT": {
|
||||
"SELECT_AGENT": "Vybrat agenta",
|
||||
"REMOVE": "Odebrat",
|
||||
|
@ -165,37 +165,37 @@
|
|||
"PLACEHOLDER": "Nic"
|
||||
},
|
||||
"ACCORDION": {
|
||||
"CONTACT_DETAILS": "Contact Details",
|
||||
"CONVERSATION_ACTIONS": "Conversation Actions",
|
||||
"CONVERSATION_LABELS": "Conversation Labels",
|
||||
"CONVERSATION_INFO": "Conversation Information",
|
||||
"CONTACT_ATTRIBUTES": "Contact Attributes",
|
||||
"CONTACT_DETAILS": "Podrobnosti kontaktu",
|
||||
"CONVERSATION_ACTIONS": "Akce konverzace",
|
||||
"CONVERSATION_LABELS": "Štítky konverzace",
|
||||
"CONVERSATION_INFO": "Informace o konverzaci",
|
||||
"CONTACT_ATTRIBUTES": "Atributy kontaktu",
|
||||
"PREVIOUS_CONVERSATION": "Předchozí konverzace"
|
||||
}
|
||||
},
|
||||
"CONVERSATION_CUSTOM_ATTRIBUTES": {
|
||||
"ADD_BUTTON_TEXT": "Create attribute",
|
||||
"ADD_BUTTON_TEXT": "Vytvořit atribut",
|
||||
"UPDATE": {
|
||||
"SUCCESS": "Attribute updated successfully",
|
||||
"ERROR": "Unable to update attribute. Please try again later"
|
||||
"SUCCESS": "Atribut byl úspěšně aktualizován",
|
||||
"ERROR": "Atribut nelze aktualizovat. Zkuste to prosím později"
|
||||
},
|
||||
"ADD": {
|
||||
"TITLE": "Add",
|
||||
"SUCCESS": "Attribute added successfully",
|
||||
"ERROR": "Unable to add attribute. Please try again later"
|
||||
"TITLE": "Přidat",
|
||||
"SUCCESS": "Atribut byl úspěšně přidán",
|
||||
"ERROR": "Nelze přidat atribut. Zkuste to prosím později"
|
||||
},
|
||||
"DELETE": {
|
||||
"SUCCESS": "Attribute deleted successfully",
|
||||
"ERROR": "Unable to delete attribute. Please try again later"
|
||||
"SUCCESS": "Atribut byl úspěšně odstraněn",
|
||||
"ERROR": "Atribut nelze odstranit. Zkuste to prosím později"
|
||||
},
|
||||
"ATTRIBUTE_SELECT": {
|
||||
"TITLE": "Add attributes",
|
||||
"PLACEHOLDER": "Search attributes",
|
||||
"NO_RESULT": "No attributes found"
|
||||
"TITLE": "Přidat atributy",
|
||||
"PLACEHOLDER": "Hledat atributy",
|
||||
"NO_RESULT": "Nebyly nalezeny žádné atributy"
|
||||
}
|
||||
},
|
||||
"EMAIL_HEADER": {
|
||||
"FROM": "From",
|
||||
"FROM": "Od",
|
||||
"TO": "Komu",
|
||||
"BCC": "Bcc",
|
||||
"CC": "Cc",
|
||||
|
|
|
@ -341,10 +341,6 @@
|
|||
"AUTO_ASSIGNMENT_SUCCESS_MESSAGE": "Automatické přiřazení bylo úspěšně aktualizováno",
|
||||
"ERROR_MESSAGE": "Nelze aktualizovat barvu widgetu. Opakujte akci později."
|
||||
},
|
||||
"AUTO_ASSIGNMENT": {
|
||||
"ENABLED": "Povoleno",
|
||||
"DISABLED": "Zakázáno"
|
||||
},
|
||||
"EMAIL_COLLECT_BOX": {
|
||||
"ENABLED": "Povoleno",
|
||||
"DISABLED": "Zakázáno"
|
||||
|
@ -402,6 +398,8 @@
|
|||
"MESSENGER_SUB_HEAD": "Umístěte toto tlačítko dovnitř vašeho tělesného štítku",
|
||||
"INBOX_AGENTS": "Agenti",
|
||||
"INBOX_AGENTS_SUB_TEXT": "Přidat nebo odebrat agenty z této složky doručené pošty",
|
||||
"AGENT_ASSIGNMENT": "Conversation Assignment",
|
||||
"AGENT_ASSIGNMENT_SUB_TEXT": "Update conversation assignment settings",
|
||||
"UPDATE": "Aktualizovat",
|
||||
"ENABLE_EMAIL_COLLECT_BOX": "Enable email collect box",
|
||||
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Enable or disable email collect box on new conversation",
|
||||
|
|
|
@ -53,7 +53,7 @@
|
|||
},
|
||||
{
|
||||
"id": 4,
|
||||
"name": "Last year"
|
||||
"name": "Poslední rok"
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
|
@ -61,56 +61,56 @@
|
|||
}
|
||||
],
|
||||
"CUSTOM_DATE_RANGE": {
|
||||
"CONFIRM": "Apply",
|
||||
"CONFIRM": "Použít",
|
||||
"PLACEHOLDER": "Select date range"
|
||||
},
|
||||
"GROUP_BY_FILTER_DROPDOWN_LABEL": "Group By",
|
||||
"GROUP_BY_DAY_OPTIONS": [
|
||||
{
|
||||
"id": 1,
|
||||
"groupBy": "Day"
|
||||
"groupBy": "Den"
|
||||
}
|
||||
],
|
||||
"GROUP_BY_WEEK_OPTIONS": [
|
||||
{
|
||||
"id": 1,
|
||||
"groupBy": "Day"
|
||||
"groupBy": "Den"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"groupBy": "Week"
|
||||
"groupBy": "Týden"
|
||||
}
|
||||
],
|
||||
"GROUP_BY_MONTH_OPTIONS": [
|
||||
{
|
||||
"id": 1,
|
||||
"groupBy": "Day"
|
||||
"groupBy": "Den"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"groupBy": "Week"
|
||||
"groupBy": "Týden"
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"groupBy": "Month"
|
||||
"groupBy": "Měsíc"
|
||||
}
|
||||
],
|
||||
"GROUP_BY_YEAR_OPTIONS": [
|
||||
{
|
||||
"id": 1,
|
||||
"groupBy": "Day"
|
||||
"groupBy": "Den"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"groupBy": "Week"
|
||||
"groupBy": "Týden"
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"groupBy": "Month"
|
||||
"groupBy": "Měsíc"
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"groupBy": "Year"
|
||||
"groupBy": "Rok"
|
||||
}
|
||||
],
|
||||
"BUSINESS_HOURS": "Pracovní doba"
|
||||
|
@ -170,7 +170,7 @@
|
|||
},
|
||||
{
|
||||
"id": 4,
|
||||
"name": "Last year"
|
||||
"name": "Poslední rok"
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
|
@ -178,7 +178,7 @@
|
|||
}
|
||||
],
|
||||
"CUSTOM_DATE_RANGE": {
|
||||
"CONFIRM": "Apply",
|
||||
"CONFIRM": "Použít",
|
||||
"PLACEHOLDER": "Select date range"
|
||||
}
|
||||
},
|
||||
|
@ -237,7 +237,7 @@
|
|||
},
|
||||
{
|
||||
"id": 4,
|
||||
"name": "Last year"
|
||||
"name": "Poslední rok"
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
|
@ -245,7 +245,7 @@
|
|||
}
|
||||
],
|
||||
"CUSTOM_DATE_RANGE": {
|
||||
"CONFIRM": "Apply",
|
||||
"CONFIRM": "Použít",
|
||||
"PLACEHOLDER": "Select date range"
|
||||
}
|
||||
},
|
||||
|
@ -304,7 +304,7 @@
|
|||
},
|
||||
{
|
||||
"id": 4,
|
||||
"name": "Last year"
|
||||
"name": "Poslední rok"
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
|
@ -312,7 +312,7 @@
|
|||
}
|
||||
],
|
||||
"CUSTOM_DATE_RANGE": {
|
||||
"CONFIRM": "Apply",
|
||||
"CONFIRM": "Použít",
|
||||
"PLACEHOLDER": "Select date range"
|
||||
}
|
||||
},
|
||||
|
@ -371,7 +371,7 @@
|
|||
},
|
||||
{
|
||||
"id": 4,
|
||||
"name": "Last year"
|
||||
"name": "Poslední rok"
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
|
@ -379,13 +379,14 @@
|
|||
}
|
||||
],
|
||||
"CUSTOM_DATE_RANGE": {
|
||||
"CONFIRM": "Apply",
|
||||
"CONFIRM": "Použít",
|
||||
"PLACEHOLDER": "Select date range"
|
||||
}
|
||||
},
|
||||
"CSAT_REPORTS": {
|
||||
"HEADER": "CSAT Reports",
|
||||
"NO_RECORDS": "There are no CSAT survey responses available.",
|
||||
"DOWNLOAD": "Download CSAT Reports",
|
||||
"FILTERS": {
|
||||
"AGENTS": {
|
||||
"PLACEHOLDER": "Choose Agents"
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
"ERROR_MESSAGE": "Nelze se připojit k Woot serveru, opakujte akci později"
|
||||
},
|
||||
"CAPTCHA": {
|
||||
"ERROR": "Verification expired. Please solve captcha again."
|
||||
"ERROR": "Ověření vypršelo. Vyřešte captchu znovu."
|
||||
},
|
||||
"SUBMIT": "Odeslat"
|
||||
}
|
||||
|
|
|
@ -154,7 +154,7 @@
|
|||
"SWITCH": "Switch",
|
||||
"CONVERSATIONS": "Konverzace",
|
||||
"ALL_CONVERSATIONS": "All Conversations",
|
||||
"MENTIONED_CONVERSATIONS": "Mentions",
|
||||
"MENTIONED_CONVERSATIONS": "Zmínka",
|
||||
"REPORTS": "Zprávy",
|
||||
"SETTINGS": "Nastavení",
|
||||
"CONTACTS": "Kontakty",
|
||||
|
|
|
@ -12,33 +12,11 @@
|
|||
"INPUT": "Søg efter Mennesker, Chats, Gemte svar .."
|
||||
},
|
||||
"FILTER_ALL": "Alle",
|
||||
"STATUS_TABS": [
|
||||
{
|
||||
"NAME": "Åbn",
|
||||
"KEY": "openCount"
|
||||
"ASSIGNEE_TYPE_TABS": {
|
||||
"me": "Mine",
|
||||
"unassigned": "Ikke Tildelt",
|
||||
"all": "Alle"
|
||||
},
|
||||
{
|
||||
"NAME": "Løst",
|
||||
"KEY": "allConvCount"
|
||||
}
|
||||
],
|
||||
"ASSIGNEE_TYPE_TABS": [
|
||||
{
|
||||
"NAME": "Mine",
|
||||
"KEY": "me",
|
||||
"COUNT_KEY": "mineCount"
|
||||
},
|
||||
{
|
||||
"NAME": "Ikke Tildelt",
|
||||
"KEY": "unassigned",
|
||||
"COUNT_KEY": "unAssignedCount"
|
||||
},
|
||||
{
|
||||
"NAME": "Alle",
|
||||
"KEY": "all",
|
||||
"COUNT_KEY": "allCount"
|
||||
}
|
||||
],
|
||||
"CHAT_STATUS_FILTER_ITEMS": {
|
||||
"open": {
|
||||
"TEXT": "Åbn"
|
||||
|
|
|
@ -341,10 +341,6 @@
|
|||
"AUTO_ASSIGNMENT_SUCCESS_MESSAGE": "Automatisk tildeling opdateret",
|
||||
"ERROR_MESSAGE": "Kunne ikke opdatere widget farve. Prøv igen senere."
|
||||
},
|
||||
"AUTO_ASSIGNMENT": {
|
||||
"ENABLED": "Aktiveret",
|
||||
"DISABLED": "Deaktiveret"
|
||||
},
|
||||
"EMAIL_COLLECT_BOX": {
|
||||
"ENABLED": "Aktiveret",
|
||||
"DISABLED": "Deaktiveret"
|
||||
|
@ -402,6 +398,8 @@
|
|||
"MESSENGER_SUB_HEAD": "Placer denne knap inde i din body tag",
|
||||
"INBOX_AGENTS": "Agenter",
|
||||
"INBOX_AGENTS_SUB_TEXT": "Tilføj eller fjern agenter fra denne indbakke",
|
||||
"AGENT_ASSIGNMENT": "Conversation Assignment",
|
||||
"AGENT_ASSIGNMENT_SUB_TEXT": "Update conversation assignment settings",
|
||||
"UPDATE": "Opdater",
|
||||
"ENABLE_EMAIL_COLLECT_BOX": "Enable email collect box",
|
||||
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Enable or disable email collect box on new conversation",
|
||||
|
|
|
@ -386,6 +386,7 @@
|
|||
"CSAT_REPORTS": {
|
||||
"HEADER": "CSAT Reports",
|
||||
"NO_RECORDS": "There are no CSAT survey responses available.",
|
||||
"DOWNLOAD": "Download CSAT Reports",
|
||||
"FILTERS": {
|
||||
"AGENTS": {
|
||||
"PLACEHOLDER": "Choose Agents"
|
||||
|
|
|
@ -12,33 +12,11 @@
|
|||
"INPUT": "Suche nach Personen, Chats, gespeicherten Antworten .."
|
||||
},
|
||||
"FILTER_ALL": "Alle",
|
||||
"STATUS_TABS": [
|
||||
{
|
||||
"NAME": "Offen",
|
||||
"KEY": "openCount"
|
||||
"ASSIGNEE_TYPE_TABS": {
|
||||
"me": "Meine",
|
||||
"unassigned": "Nicht zugewiesen",
|
||||
"all": "Alle"
|
||||
},
|
||||
{
|
||||
"NAME": "Gelöst",
|
||||
"KEY": "allConvCount"
|
||||
}
|
||||
],
|
||||
"ASSIGNEE_TYPE_TABS": [
|
||||
{
|
||||
"NAME": "Meine",
|
||||
"KEY": "me",
|
||||
"COUNT_KEY": "mineCount"
|
||||
},
|
||||
{
|
||||
"NAME": "Nicht zugewiesen",
|
||||
"KEY": "unassigned",
|
||||
"COUNT_KEY": "unAssignedCount"
|
||||
},
|
||||
{
|
||||
"NAME": "Alle",
|
||||
"KEY": "all",
|
||||
"COUNT_KEY": "allCount"
|
||||
}
|
||||
],
|
||||
"CHAT_STATUS_FILTER_ITEMS": {
|
||||
"open": {
|
||||
"TEXT": "Öffnen"
|
||||
|
|
|
@ -341,10 +341,6 @@
|
|||
"AUTO_ASSIGNMENT_SUCCESS_MESSAGE": "Automatische Zuordnung erfolgreich aktualisiert",
|
||||
"ERROR_MESSAGE": "Widget-Farbe konnte nicht aktualisiert werden. Bitte versuchen Sie es später noch einmal."
|
||||
},
|
||||
"AUTO_ASSIGNMENT": {
|
||||
"ENABLED": "Aktiviert",
|
||||
"DISABLED": "Deaktiviert"
|
||||
},
|
||||
"EMAIL_COLLECT_BOX": {
|
||||
"ENABLED": "Aktiviert",
|
||||
"DISABLED": "Deaktiviert"
|
||||
|
@ -402,6 +398,8 @@
|
|||
"MESSENGER_SUB_HEAD": "Platzieren Sie diese Schaltfläche in Ihrem Body-Tag",
|
||||
"INBOX_AGENTS": "Agenten",
|
||||
"INBOX_AGENTS_SUB_TEXT": "Hinzufügen oder Entfernen von Agenten zu diesem Posteingang",
|
||||
"AGENT_ASSIGNMENT": "Conversation Assignment",
|
||||
"AGENT_ASSIGNMENT_SUB_TEXT": "Update conversation assignment settings",
|
||||
"UPDATE": "Aktualisieren",
|
||||
"ENABLE_EMAIL_COLLECT_BOX": "E-Mail-Sammelbox aktivieren",
|
||||
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "E-Mail-Sammelbox für neue Konversation aktivieren oder deaktivieren",
|
||||
|
|
|
@ -386,6 +386,7 @@
|
|||
"CSAT_REPORTS": {
|
||||
"HEADER": "CSAT-Berichte",
|
||||
"NO_RECORDS": "Es sind keine Antworten zu CSAT Umfragen verfügbar.",
|
||||
"DOWNLOAD": "CSAT-Berichte herunterladen",
|
||||
"FILTERS": {
|
||||
"AGENTS": {
|
||||
"PLACEHOLDER": "Agenten wählen"
|
||||
|
@ -420,7 +421,7 @@
|
|||
"ACCOUNT_CONVERSATIONS": {
|
||||
"HEADER": "Offene Konversationen",
|
||||
"LOADING_MESSAGE": "Konversationsdaten werden geladen...",
|
||||
"OPEN": "Offen",
|
||||
"OPEN": "Öffnen",
|
||||
"UNATTENDED": "Unbeaufsichtigt",
|
||||
"UNASSIGNED": "Nicht zugewiesen"
|
||||
},
|
||||
|
|
|
@ -12,33 +12,11 @@
|
|||
"INPUT": "Αναζήτηση Ανθρώπων, συνομιλιών, αποθηκευμένων απαντήσεων .."
|
||||
},
|
||||
"FILTER_ALL": "Όλες",
|
||||
"STATUS_TABS": [
|
||||
{
|
||||
"NAME": "Ανοιχτές",
|
||||
"KEY": "openCount"
|
||||
"ASSIGNEE_TYPE_TABS": {
|
||||
"me": "Δικές μου",
|
||||
"unassigned": "Χωρίς Αντιστοίχιση",
|
||||
"all": "Όλες"
|
||||
},
|
||||
{
|
||||
"NAME": "Επιλύθηκαν",
|
||||
"KEY": "allConvCount"
|
||||
}
|
||||
],
|
||||
"ASSIGNEE_TYPE_TABS": [
|
||||
{
|
||||
"NAME": "Δικές μου",
|
||||
"KEY": "me",
|
||||
"COUNT_KEY": "mineCount"
|
||||
},
|
||||
{
|
||||
"NAME": "Χωρίς Αντιστοίχιση",
|
||||
"KEY": "unassigned",
|
||||
"COUNT_KEY": "unAssignedCount"
|
||||
},
|
||||
{
|
||||
"NAME": "Όλες",
|
||||
"KEY": "all",
|
||||
"COUNT_KEY": "allCount"
|
||||
}
|
||||
],
|
||||
"CHAT_STATUS_FILTER_ITEMS": {
|
||||
"open": {
|
||||
"TEXT": "Ανοιχτές"
|
||||
|
|
|
@ -341,10 +341,6 @@
|
|||
"AUTO_ASSIGNMENT_SUCCESS_MESSAGE": "Η αυτόματη αντιστοίχιση ενημερώθηκε επιτυχώς",
|
||||
"ERROR_MESSAGE": "Δεν μπορεί να ενημερωθεί το χρώμα του widget. Παρακαλώ προσπαθήστε αργότερα."
|
||||
},
|
||||
"AUTO_ASSIGNMENT": {
|
||||
"ENABLED": "Ενεργό",
|
||||
"DISABLED": "Ανενεργό"
|
||||
},
|
||||
"EMAIL_COLLECT_BOX": {
|
||||
"ENABLED": "Ενεργό",
|
||||
"DISABLED": "Ανενεργό"
|
||||
|
@ -402,6 +398,8 @@
|
|||
"MESSENGER_SUB_HEAD": "Τοποθετήσετε αυτόν τον κώδικα μέσα στο body tag της ιστοσελίδας σας",
|
||||
"INBOX_AGENTS": "Πράκτορες",
|
||||
"INBOX_AGENTS_SUB_TEXT": "Προσθέστε ή αφαιρέστε πράκτορες σε αυτό το κιβώτιο",
|
||||
"AGENT_ASSIGNMENT": "Ανάθεση Συνομιλίας",
|
||||
"AGENT_ASSIGNMENT_SUB_TEXT": "Ενημέρωση ρυθμίσεων ανάθεσης συνομιλίας",
|
||||
"UPDATE": "Ενημέρωση",
|
||||
"ENABLE_EMAIL_COLLECT_BOX": "Ενεργοποιήσετε το πλαίσιο συλλογής email",
|
||||
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Ενεργοποίηση ή απενεργοποίηση του πλαισίου συλλογής μηνυμάτων ηλεκτρονικού ταχυδρομείου στη νέα συνομιλία",
|
||||
|
|
|
@ -386,6 +386,7 @@
|
|||
"CSAT_REPORTS": {
|
||||
"HEADER": "Αναφορές CSAT",
|
||||
"NO_RECORDS": "Δεν υπάρχουν διαθέσιμες απαντήσεις ερευνών CSAT.",
|
||||
"DOWNLOAD": "Λήψη αναφορών CSAT",
|
||||
"FILTERS": {
|
||||
"AGENTS": {
|
||||
"PLACEHOLDER": "Επιλέξτε Πράκτορες"
|
||||
|
|
|
@ -12,33 +12,11 @@
|
|||
"INPUT": "Search for People, Chats, Saved Replies .."
|
||||
},
|
||||
"FILTER_ALL": "All",
|
||||
"STATUS_TABS": [
|
||||
{
|
||||
"NAME": "Open",
|
||||
"KEY": "openCount"
|
||||
"ASSIGNEE_TYPE_TABS": {
|
||||
"me": "Mine",
|
||||
"unassigned": "Unassigned",
|
||||
"all": "All"
|
||||
},
|
||||
{
|
||||
"NAME": "Resolved",
|
||||
"KEY": "allConvCount"
|
||||
}
|
||||
],
|
||||
"ASSIGNEE_TYPE_TABS": [
|
||||
{
|
||||
"NAME": "Mine",
|
||||
"KEY": "me",
|
||||
"COUNT_KEY": "mineCount"
|
||||
},
|
||||
{
|
||||
"NAME": "Unassigned",
|
||||
"KEY": "unassigned",
|
||||
"COUNT_KEY": "unAssignedCount"
|
||||
},
|
||||
{
|
||||
"NAME": "All",
|
||||
"KEY": "all",
|
||||
"COUNT_KEY": "allCount"
|
||||
}
|
||||
],
|
||||
"CHAT_STATUS_FILTER_ITEMS": {
|
||||
"open": {
|
||||
"TEXT": "Open"
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
"CONVERSATION": {
|
||||
"404": "Please select a conversation from left pane",
|
||||
"DASHBOARD_APP_TAB_MESSAGES": "Messages",
|
||||
"UNVERIFIED_SESSION": "The identity of this user is not verified",
|
||||
"NO_MESSAGE_1": "Uh oh! Looks like there are no messages from customers in your inbox.",
|
||||
"NO_MESSAGE_2": " to send a message to your page!",
|
||||
|
@ -30,6 +31,7 @@
|
|||
"REPLYING_TO": "You are replying to:",
|
||||
"REMOVE_SELECTION": "Remove Selection",
|
||||
"DOWNLOAD": "Download",
|
||||
"UNKNOWN_FILE_TYPE": "Unknown File",
|
||||
"UPLOADING_ATTACHMENTS": "Uploading attachments...",
|
||||
"SUCCESS_DELETE_MESSAGE": "Message deleted successfully",
|
||||
"FAIL_DELETE_MESSSAGE": "Couldn't delete message! Try again",
|
||||
|
|
|
@ -341,10 +341,6 @@
|
|||
"AUTO_ASSIGNMENT_SUCCESS_MESSAGE": "Auto assignment updated successfully",
|
||||
"ERROR_MESSAGE": "Could not update widget color. Please try again later."
|
||||
},
|
||||
"AUTO_ASSIGNMENT": {
|
||||
"ENABLED": "Enabled",
|
||||
"DISABLED": "Disabled"
|
||||
},
|
||||
"EMAIL_COLLECT_BOX": {
|
||||
"ENABLED": "Enabled",
|
||||
"DISABLED": "Disabled"
|
||||
|
@ -402,6 +398,8 @@
|
|||
"MESSENGER_SUB_HEAD": "Place this button inside your body tag",
|
||||
"INBOX_AGENTS": "Agents",
|
||||
"INBOX_AGENTS_SUB_TEXT": "Add or remove agents from this inbox",
|
||||
"AGENT_ASSIGNMENT": "Conversation Assignment",
|
||||
"AGENT_ASSIGNMENT_SUB_TEXT": "Update conversation assignment settings",
|
||||
"UPDATE": "Update",
|
||||
"ENABLE_EMAIL_COLLECT_BOX": "Enable email collect box",
|
||||
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Enable or disable email collect box on new conversation",
|
||||
|
|
|
@ -354,6 +354,7 @@
|
|||
"CSAT_REPORTS": {
|
||||
"HEADER": "CSAT Reports",
|
||||
"NO_RECORDS": "There are no CSAT survey responses available.",
|
||||
"DOWNLOAD": "Download CSAT Reports",
|
||||
"FILTERS": {
|
||||
"AGENTS": {
|
||||
"PLACEHOLDER": "Choose Agents"
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
},
|
||||
"MESSAGE_SIGNATURE_SECTION": {
|
||||
"TITLE": "Personal message signature",
|
||||
"NOTE": "Create a personal message signature that would be added to all the messages you send from the platform. Use the rich content editor to create a highly personalised signature.",
|
||||
"NOTE": "Create a personal message signature that would be added to all the messages you send from your email inbox. Use the rich content editor to create a highly personalised signature.",
|
||||
"BTN_TEXT": "Save message signature",
|
||||
"API_ERROR": "Couldn't save signature! Try again",
|
||||
"API_SUCCESS": "Signature saved successfully"
|
||||
|
|
|
@ -12,33 +12,11 @@
|
|||
"INPUT": "Búsqueda de Personas, Chats, Respuestas Salvadas .."
|
||||
},
|
||||
"FILTER_ALL": "Todos",
|
||||
"STATUS_TABS": [
|
||||
{
|
||||
"NAME": "Abrir",
|
||||
"KEY": "openCount"
|
||||
"ASSIGNEE_TYPE_TABS": {
|
||||
"me": "Mías",
|
||||
"unassigned": "Sin asignar",
|
||||
"all": "Todos"
|
||||
},
|
||||
{
|
||||
"NAME": "Resuelto",
|
||||
"KEY": "allConvCount"
|
||||
}
|
||||
],
|
||||
"ASSIGNEE_TYPE_TABS": [
|
||||
{
|
||||
"NAME": "Mías",
|
||||
"KEY": "me",
|
||||
"COUNT_KEY": "mineCount"
|
||||
},
|
||||
{
|
||||
"NAME": "Unassigned",
|
||||
"KEY": "unassigned",
|
||||
"COUNT_KEY": "unAssignedCount"
|
||||
},
|
||||
{
|
||||
"NAME": "Todos",
|
||||
"KEY": "all",
|
||||
"COUNT_KEY": "allCount"
|
||||
}
|
||||
],
|
||||
"CHAT_STATUS_FILTER_ITEMS": {
|
||||
"open": {
|
||||
"TEXT": "Abrir"
|
||||
|
|
|
@ -341,10 +341,6 @@
|
|||
"AUTO_ASSIGNMENT_SUCCESS_MESSAGE": "Auto-asignación actualizada correctamente",
|
||||
"ERROR_MESSAGE": "No se pudo actualizar el color del widget. Inténtalo de nuevo más tarde."
|
||||
},
|
||||
"AUTO_ASSIGNMENT": {
|
||||
"ENABLED": "Activado",
|
||||
"DISABLED": "Deshabilitado"
|
||||
},
|
||||
"EMAIL_COLLECT_BOX": {
|
||||
"ENABLED": "Activado",
|
||||
"DISABLED": "Deshabilitado"
|
||||
|
@ -402,6 +398,8 @@
|
|||
"MESSENGER_SUB_HEAD": "Coloca este botón dentro de tu etiqueta cuerpo",
|
||||
"INBOX_AGENTS": "Agentes",
|
||||
"INBOX_AGENTS_SUB_TEXT": "Añadir o quitar agentes de esta bandeja de entrada",
|
||||
"AGENT_ASSIGNMENT": "Conversation Assignment",
|
||||
"AGENT_ASSIGNMENT_SUB_TEXT": "Update conversation assignment settings",
|
||||
"UPDATE": "Actualizar",
|
||||
"ENABLE_EMAIL_COLLECT_BOX": "Activar caja de recolección de correo electrónico",
|
||||
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Activar o desactivar la caja de recolección de correo electrónico",
|
||||
|
|
|
@ -386,6 +386,7 @@
|
|||
"CSAT_REPORTS": {
|
||||
"HEADER": "Reporte de encuestas de satisfacción",
|
||||
"NO_RECORDS": "No hay respuestas de encuestas de satisfacción disponibles.",
|
||||
"DOWNLOAD": "Download CSAT Reports",
|
||||
"FILTERS": {
|
||||
"AGENTS": {
|
||||
"PLACEHOLDER": "Elegir agentes"
|
||||
|
|
|
@ -12,33 +12,11 @@
|
|||
"INPUT": "پیدا کردن افراد، گفتگوها و پاسخهای از پیش نوشته شده..."
|
||||
},
|
||||
"FILTER_ALL": "همه",
|
||||
"STATUS_TABS": [
|
||||
{
|
||||
"NAME": "باز",
|
||||
"KEY": "openCount"
|
||||
"ASSIGNEE_TYPE_TABS": {
|
||||
"me": "من",
|
||||
"unassigned": "تخصیص داده نشده",
|
||||
"all": "همه"
|
||||
},
|
||||
{
|
||||
"NAME": "حل شده",
|
||||
"KEY": "allConvCount"
|
||||
}
|
||||
],
|
||||
"ASSIGNEE_TYPE_TABS": [
|
||||
{
|
||||
"NAME": "من",
|
||||
"KEY": "me",
|
||||
"COUNT_KEY": "mineCount"
|
||||
},
|
||||
{
|
||||
"NAME": "تخصیص داده نشده",
|
||||
"KEY": "unassigned",
|
||||
"COUNT_KEY": "unAssignedCount"
|
||||
},
|
||||
{
|
||||
"NAME": "همه",
|
||||
"KEY": "all",
|
||||
"COUNT_KEY": "allCount"
|
||||
}
|
||||
],
|
||||
"CHAT_STATUS_FILTER_ITEMS": {
|
||||
"open": {
|
||||
"TEXT": "باز"
|
||||
|
|
|
@ -341,10 +341,6 @@
|
|||
"AUTO_ASSIGNMENT_SUCCESS_MESSAGE": "واگذاری خودکار گفتگو به ایجنت ها تنظیم شد",
|
||||
"ERROR_MESSAGE": "در حال حاضر امکان تغییر رنگ ویجت امکانپذیر نیست. لطفا بعدا امتحان کنید."
|
||||
},
|
||||
"AUTO_ASSIGNMENT": {
|
||||
"ENABLED": "فعال",
|
||||
"DISABLED": "غیرفعال"
|
||||
},
|
||||
"EMAIL_COLLECT_BOX": {
|
||||
"ENABLED": "فعال",
|
||||
"DISABLED": "غیرفعال"
|
||||
|
@ -402,6 +398,8 @@
|
|||
"MESSENGER_SUB_HEAD": "این دکمه را در تگ body قرار دهید",
|
||||
"INBOX_AGENTS": "ایجنت ها",
|
||||
"INBOX_AGENTS_SUB_TEXT": "اضافه کردن یا حذف کردن دسترسی ایجنت به صندوق ورودی",
|
||||
"AGENT_ASSIGNMENT": "واگذاری مکالمه",
|
||||
"AGENT_ASSIGNMENT_SUB_TEXT": "تنظیمات واگذاری مکالمه را به روز کنید",
|
||||
"UPDATE": "اعمال شود",
|
||||
"ENABLE_EMAIL_COLLECT_BOX": "فعال سازی فرم دریافت ایمیل از کاربر",
|
||||
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "فعال یا غیرفعال کردن فرم دریافت ایمیل از کاربر",
|
||||
|
|
|
@ -386,6 +386,7 @@
|
|||
"CSAT_REPORTS": {
|
||||
"HEADER": "گزارشات رضایت مشتری",
|
||||
"NO_RECORDS": "هیچ پاسخ برای نظرسنجی رضایت مشتری در دسترس نیست.",
|
||||
"DOWNLOAD": "دانلود گزارش CSAT",
|
||||
"FILTERS": {
|
||||
"AGENTS": {
|
||||
"PLACEHOLDER": "ایجنت را انتخاب کنید"
|
||||
|
|
|
@ -12,33 +12,11 @@
|
|||
"INPUT": "Etsi ihmisiä, keskusteluita, tallennettuja vastauksia..."
|
||||
},
|
||||
"FILTER_ALL": "Kaikki",
|
||||
"STATUS_TABS": [
|
||||
{
|
||||
"NAME": "Avaa",
|
||||
"KEY": "openCount"
|
||||
"ASSIGNEE_TYPE_TABS": {
|
||||
"me": "Minun",
|
||||
"unassigned": "Osoittamaton",
|
||||
"all": "Kaikki"
|
||||
},
|
||||
{
|
||||
"NAME": "Ratkaistu",
|
||||
"KEY": "allConvCount"
|
||||
}
|
||||
],
|
||||
"ASSIGNEE_TYPE_TABS": [
|
||||
{
|
||||
"NAME": "Minun",
|
||||
"KEY": "me",
|
||||
"COUNT_KEY": "mineCount"
|
||||
},
|
||||
{
|
||||
"NAME": "Osoittamaton",
|
||||
"KEY": "unassigned",
|
||||
"COUNT_KEY": "unAssignedCount"
|
||||
},
|
||||
{
|
||||
"NAME": "Kaikki",
|
||||
"KEY": "all",
|
||||
"COUNT_KEY": "allCount"
|
||||
}
|
||||
],
|
||||
"CHAT_STATUS_FILTER_ITEMS": {
|
||||
"open": {
|
||||
"TEXT": "Avaa"
|
||||
|
|
|
@ -341,10 +341,6 @@
|
|||
"AUTO_ASSIGNMENT_SUCCESS_MESSAGE": "Automaattinen delegointi päivitetty onnistuneesti",
|
||||
"ERROR_MESSAGE": "Widgetin väriä ei voitu päivittää. Yritä myöhemmin uudelleen."
|
||||
},
|
||||
"AUTO_ASSIGNMENT": {
|
||||
"ENABLED": "Käytössä",
|
||||
"DISABLED": "Pois käytöstä"
|
||||
},
|
||||
"EMAIL_COLLECT_BOX": {
|
||||
"ENABLED": "Käytössä",
|
||||
"DISABLED": "Pois käytöstä"
|
||||
|
@ -402,6 +398,8 @@
|
|||
"MESSENGER_SUB_HEAD": "Aseta tämä painike body-tagiisi",
|
||||
"INBOX_AGENTS": "Edustajat",
|
||||
"INBOX_AGENTS_SUB_TEXT": "Lisää tai poista edustajia tästä saapuneet-kansiosta",
|
||||
"AGENT_ASSIGNMENT": "Conversation Assignment",
|
||||
"AGENT_ASSIGNMENT_SUB_TEXT": "Update conversation assignment settings",
|
||||
"UPDATE": "Päivitä",
|
||||
"ENABLE_EMAIL_COLLECT_BOX": "Enable email collect box",
|
||||
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Enable or disable email collect box on new conversation",
|
||||
|
|
|
@ -386,6 +386,7 @@
|
|||
"CSAT_REPORTS": {
|
||||
"HEADER": "CSAT Reports",
|
||||
"NO_RECORDS": "There are no CSAT survey responses available.",
|
||||
"DOWNLOAD": "Download CSAT Reports",
|
||||
"FILTERS": {
|
||||
"AGENTS": {
|
||||
"PLACEHOLDER": "Choose Agents"
|
||||
|
|
|
@ -12,33 +12,11 @@
|
|||
"INPUT": "Rechercher des personnes, des conversations, des réponses standardisées ..."
|
||||
},
|
||||
"FILTER_ALL": "Tous",
|
||||
"STATUS_TABS": [
|
||||
{
|
||||
"NAME": "Ouvert",
|
||||
"KEY": "openCount"
|
||||
"ASSIGNEE_TYPE_TABS": {
|
||||
"me": "Les miens",
|
||||
"unassigned": "Non assigné",
|
||||
"all": "Tous"
|
||||
},
|
||||
{
|
||||
"NAME": "Résolu",
|
||||
"KEY": "allConvCount"
|
||||
}
|
||||
],
|
||||
"ASSIGNEE_TYPE_TABS": [
|
||||
{
|
||||
"NAME": "Les miens",
|
||||
"KEY": "me",
|
||||
"COUNT_KEY": "mineCount"
|
||||
},
|
||||
{
|
||||
"NAME": "Non assigné",
|
||||
"KEY": "unassigned",
|
||||
"COUNT_KEY": "unAssignedCount"
|
||||
},
|
||||
{
|
||||
"NAME": "Tous",
|
||||
"KEY": "all",
|
||||
"COUNT_KEY": "allCount"
|
||||
}
|
||||
],
|
||||
"CHAT_STATUS_FILTER_ITEMS": {
|
||||
"open": {
|
||||
"TEXT": "Ouvert"
|
||||
|
|
|
@ -341,10 +341,6 @@
|
|||
"AUTO_ASSIGNMENT_SUCCESS_MESSAGE": "Affectation automatique mise à jour avec succès",
|
||||
"ERROR_MESSAGE": "Impossible de mettre à jour la couleur du widget. Veuillez réessayer plus tard."
|
||||
},
|
||||
"AUTO_ASSIGNMENT": {
|
||||
"ENABLED": "Activé",
|
||||
"DISABLED": "Désactivé"
|
||||
},
|
||||
"EMAIL_COLLECT_BOX": {
|
||||
"ENABLED": "Activé",
|
||||
"DISABLED": "Désactivé"
|
||||
|
@ -402,6 +398,8 @@
|
|||
"MESSENGER_SUB_HEAD": "Placez ce code avant la fermeture de votre balise body",
|
||||
"INBOX_AGENTS": "Agents",
|
||||
"INBOX_AGENTS_SUB_TEXT": "Ajouter ou supprimer des agents de cette boîte de réception",
|
||||
"AGENT_ASSIGNMENT": "Konversationsauftrag",
|
||||
"AGENT_ASSIGNMENT_SUB_TEXT": "Aktualisieren Sie die Konversationszuweisungseinstellungen",
|
||||
"UPDATE": "Mettre à jour",
|
||||
"ENABLE_EMAIL_COLLECT_BOX": "Activer la boîte de collecte des courriels",
|
||||
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Activer ou désactiver la boîte de collecte des courriels pour les nouvelles conversations",
|
||||
|
|
|
@ -386,6 +386,7 @@
|
|||
"CSAT_REPORTS": {
|
||||
"HEADER": "Rapports CSAT",
|
||||
"NO_RECORDS": "Il n'y a aucune réponse à l'enquête CSAT disponible.",
|
||||
"DOWNLOAD": "Download CSAT Reports",
|
||||
"FILTERS": {
|
||||
"AGENTS": {
|
||||
"PLACEHOLDER": "Choisissez des agents"
|
||||
|
|
|
@ -12,33 +12,11 @@
|
|||
"INPUT": "חפש אנשים, צ'אטים, תגובות שמורות .."
|
||||
},
|
||||
"FILTER_ALL": "הכל",
|
||||
"STATUS_TABS": [
|
||||
{
|
||||
"NAME": "פתח",
|
||||
"KEY": "openCount"
|
||||
"ASSIGNEE_TYPE_TABS": {
|
||||
"me": "שלי",
|
||||
"unassigned": "לא הוקצתה",
|
||||
"all": "הכל"
|
||||
},
|
||||
{
|
||||
"NAME": "נפתרה",
|
||||
"KEY": "allConvCount"
|
||||
}
|
||||
],
|
||||
"ASSIGNEE_TYPE_TABS": [
|
||||
{
|
||||
"NAME": "שלי",
|
||||
"KEY": "me",
|
||||
"COUNT_KEY": "mineCount"
|
||||
},
|
||||
{
|
||||
"NAME": "לא הוקצתה",
|
||||
"KEY": "unassigned",
|
||||
"COUNT_KEY": "unAssignedCount"
|
||||
},
|
||||
{
|
||||
"NAME": "הכל",
|
||||
"KEY": "all",
|
||||
"COUNT_KEY": "allCount"
|
||||
}
|
||||
],
|
||||
"CHAT_STATUS_FILTER_ITEMS": {
|
||||
"open": {
|
||||
"TEXT": "פתח"
|
||||
|
|
|
@ -341,10 +341,6 @@
|
|||
"AUTO_ASSIGNMENT_SUCCESS_MESSAGE": "ההקצאה האוטומטית עודכנה בהצלחה",
|
||||
"ERROR_MESSAGE": "לא ניתן היה לעדכן את צבע הווידג'ט. בבקשה נסה שוב מאוחר יותר."
|
||||
},
|
||||
"AUTO_ASSIGNMENT": {
|
||||
"ENABLED": "מופעל",
|
||||
"DISABLED": "כבוי"
|
||||
},
|
||||
"EMAIL_COLLECT_BOX": {
|
||||
"ENABLED": "מופעל",
|
||||
"DISABLED": "כבוי"
|
||||
|
@ -402,6 +398,8 @@
|
|||
"MESSENGER_SUB_HEAD": "מקם את הכפתור הזה בתוך תג הגוף שלך",
|
||||
"INBOX_AGENTS": "סוכנים",
|
||||
"INBOX_AGENTS_SUB_TEXT": "הוסף או הסר נציגים מתיבת הדואר הנכנס הזו",
|
||||
"AGENT_ASSIGNMENT": "Conversation Assignment",
|
||||
"AGENT_ASSIGNMENT_SUB_TEXT": "Update conversation assignment settings",
|
||||
"UPDATE": "עדכן",
|
||||
"ENABLE_EMAIL_COLLECT_BOX": "אפשר תיבת איסוף דוא\"ל",
|
||||
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "הפעל או השבת את תיבת איסוף הדוא\"ל בשיחה חדשה",
|
||||
|
|
|
@ -386,6 +386,7 @@
|
|||
"CSAT_REPORTS": {
|
||||
"HEADER": "CSAT Reports",
|
||||
"NO_RECORDS": "There are no CSAT survey responses available.",
|
||||
"DOWNLOAD": "Download CSAT Reports",
|
||||
"FILTERS": {
|
||||
"AGENTS": {
|
||||
"PLACEHOLDER": "Choose Agents"
|
||||
|
|
|
@ -12,33 +12,11 @@
|
|||
"INPUT": "Search for People, Chats, Saved Replies .."
|
||||
},
|
||||
"FILTER_ALL": "All",
|
||||
"STATUS_TABS": [
|
||||
{
|
||||
"NAME": "Open",
|
||||
"KEY": "openCount"
|
||||
"ASSIGNEE_TYPE_TABS": {
|
||||
"me": "Mine",
|
||||
"unassigned": "Unassigned",
|
||||
"all": "All"
|
||||
},
|
||||
{
|
||||
"NAME": "Resolved",
|
||||
"KEY": "allConvCount"
|
||||
}
|
||||
],
|
||||
"ASSIGNEE_TYPE_TABS": [
|
||||
{
|
||||
"NAME": "Mine",
|
||||
"KEY": "me",
|
||||
"COUNT_KEY": "mineCount"
|
||||
},
|
||||
{
|
||||
"NAME": "Unassigned",
|
||||
"KEY": "unassigned",
|
||||
"COUNT_KEY": "unAssignedCount"
|
||||
},
|
||||
{
|
||||
"NAME": "All",
|
||||
"KEY": "all",
|
||||
"COUNT_KEY": "allCount"
|
||||
}
|
||||
],
|
||||
"CHAT_STATUS_FILTER_ITEMS": {
|
||||
"open": {
|
||||
"TEXT": "Open"
|
||||
|
|
|
@ -341,10 +341,6 @@
|
|||
"AUTO_ASSIGNMENT_SUCCESS_MESSAGE": "Auto assignment updated successfully",
|
||||
"ERROR_MESSAGE": "Could not update widget color. Please try again later."
|
||||
},
|
||||
"AUTO_ASSIGNMENT": {
|
||||
"ENABLED": "Enabled",
|
||||
"DISABLED": "Disabled"
|
||||
},
|
||||
"EMAIL_COLLECT_BOX": {
|
||||
"ENABLED": "Enabled",
|
||||
"DISABLED": "Disabled"
|
||||
|
@ -402,6 +398,8 @@
|
|||
"MESSENGER_SUB_HEAD": "Place this button inside your body tag",
|
||||
"INBOX_AGENTS": "Agents",
|
||||
"INBOX_AGENTS_SUB_TEXT": "Add or remove agents from this inbox",
|
||||
"AGENT_ASSIGNMENT": "Conversation Assignment",
|
||||
"AGENT_ASSIGNMENT_SUB_TEXT": "Update conversation assignment settings",
|
||||
"UPDATE": "Update",
|
||||
"ENABLE_EMAIL_COLLECT_BOX": "Enable email collect box",
|
||||
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Enable or disable email collect box on new conversation",
|
||||
|
|
|
@ -386,6 +386,7 @@
|
|||
"CSAT_REPORTS": {
|
||||
"HEADER": "CSAT Reports",
|
||||
"NO_RECORDS": "There are no CSAT survey responses available.",
|
||||
"DOWNLOAD": "Download CSAT Reports",
|
||||
"FILTERS": {
|
||||
"AGENTS": {
|
||||
"PLACEHOLDER": "Choose Agents"
|
||||
|
|
|
@ -12,33 +12,11 @@
|
|||
"INPUT": "Keresés: emberek, beszélgetése, mentett válaszok .."
|
||||
},
|
||||
"FILTER_ALL": "Mind",
|
||||
"STATUS_TABS": [
|
||||
{
|
||||
"NAME": "Megnyitás",
|
||||
"KEY": "openCount"
|
||||
"ASSIGNEE_TYPE_TABS": {
|
||||
"me": "Enyém",
|
||||
"unassigned": "Gazdátlan",
|
||||
"all": "Mind"
|
||||
},
|
||||
{
|
||||
"NAME": "Megoldva",
|
||||
"KEY": "allConvCount"
|
||||
}
|
||||
],
|
||||
"ASSIGNEE_TYPE_TABS": [
|
||||
{
|
||||
"NAME": "Enyém",
|
||||
"KEY": "me",
|
||||
"COUNT_KEY": "mineCount"
|
||||
},
|
||||
{
|
||||
"NAME": "Gazdátlan",
|
||||
"KEY": "unassigned",
|
||||
"COUNT_KEY": "unAssignedCount"
|
||||
},
|
||||
{
|
||||
"NAME": "Mind",
|
||||
"KEY": "all",
|
||||
"COUNT_KEY": "allCount"
|
||||
}
|
||||
],
|
||||
"CHAT_STATUS_FILTER_ITEMS": {
|
||||
"open": {
|
||||
"TEXT": "Megnyitás"
|
||||
|
|
|
@ -341,10 +341,6 @@
|
|||
"AUTO_ASSIGNMENT_SUCCESS_MESSAGE": "Automatikus hozzárendelés sikeresen frissítve",
|
||||
"ERROR_MESSAGE": "Nem sikerült a widget szín változtatása. Kérjük próbáld később."
|
||||
},
|
||||
"AUTO_ASSIGNMENT": {
|
||||
"ENABLED": "Engedélyezve",
|
||||
"DISABLED": "Letiltva"
|
||||
},
|
||||
"EMAIL_COLLECT_BOX": {
|
||||
"ENABLED": "Engedélyezve",
|
||||
"DISABLED": "Letiltva"
|
||||
|
@ -402,6 +398,8 @@
|
|||
"MESSENGER_SUB_HEAD": "Ezt a gombot a body tag-en belül helyezd el",
|
||||
"INBOX_AGENTS": "Ügynökök",
|
||||
"INBOX_AGENTS_SUB_TEXT": "Ügynökök hosszáadása vagy eltávolítása az inboxból",
|
||||
"AGENT_ASSIGNMENT": "Conversation Assignment",
|
||||
"AGENT_ASSIGNMENT_SUB_TEXT": "Update conversation assignment settings",
|
||||
"UPDATE": "Frissítés",
|
||||
"ENABLE_EMAIL_COLLECT_BOX": "Enable email collect box",
|
||||
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Enable or disable email collect box on new conversation",
|
||||
|
|
|
@ -386,6 +386,7 @@
|
|||
"CSAT_REPORTS": {
|
||||
"HEADER": "CSAT Reports",
|
||||
"NO_RECORDS": "There are no CSAT survey responses available.",
|
||||
"DOWNLOAD": "Download CSAT Reports",
|
||||
"FILTERS": {
|
||||
"AGENTS": {
|
||||
"PLACEHOLDER": "Choose Agents"
|
||||
|
|
|
@ -12,33 +12,11 @@
|
|||
"INPUT": "Telusuri Orang, Obrolan, Balasan Tersimpan.."
|
||||
},
|
||||
"FILTER_ALL": "Semua",
|
||||
"STATUS_TABS": [
|
||||
{
|
||||
"NAME": "Terbuka",
|
||||
"KEY": "openCount"
|
||||
"ASSIGNEE_TYPE_TABS": {
|
||||
"me": "Milikku",
|
||||
"unassigned": "Belum ditugaskan",
|
||||
"all": "Semua"
|
||||
},
|
||||
{
|
||||
"NAME": "Terselesaikan",
|
||||
"KEY": "allConvCount"
|
||||
}
|
||||
],
|
||||
"ASSIGNEE_TYPE_TABS": [
|
||||
{
|
||||
"NAME": "Milikku",
|
||||
"KEY": "me",
|
||||
"COUNT_KEY": "mineCount"
|
||||
},
|
||||
{
|
||||
"NAME": "Belum ditugaskan",
|
||||
"KEY": "unassigned",
|
||||
"COUNT_KEY": "unAssignedCount"
|
||||
},
|
||||
{
|
||||
"NAME": "Semua",
|
||||
"KEY": "all",
|
||||
"COUNT_KEY": "allCount"
|
||||
}
|
||||
],
|
||||
"CHAT_STATUS_FILTER_ITEMS": {
|
||||
"open": {
|
||||
"TEXT": "Terbuka"
|
||||
|
|
|
@ -341,10 +341,6 @@
|
|||
"AUTO_ASSIGNMENT_SUCCESS_MESSAGE": "Penugasan otomatis berhasil diperbarui",
|
||||
"ERROR_MESSAGE": "Tidak dapat memperbarui warna widget. Silakan coba lagi nanti."
|
||||
},
|
||||
"AUTO_ASSIGNMENT": {
|
||||
"ENABLED": "Diaktifkan",
|
||||
"DISABLED": "Nonaktif"
|
||||
},
|
||||
"EMAIL_COLLECT_BOX": {
|
||||
"ENABLED": "Diaktifkan",
|
||||
"DISABLED": "Nonaktif"
|
||||
|
@ -402,6 +398,8 @@
|
|||
"MESSENGER_SUB_HEAD": "Tempatkan tombol ini di dalam tag <body> Anda",
|
||||
"INBOX_AGENTS": "Agen",
|
||||
"INBOX_AGENTS_SUB_TEXT": "Tambahkan atau hapus agen dari kotak masuk ini",
|
||||
"AGENT_ASSIGNMENT": "Conversation Assignment",
|
||||
"AGENT_ASSIGNMENT_SUB_TEXT": "Update conversation assignment settings",
|
||||
"UPDATE": "Perbarui",
|
||||
"ENABLE_EMAIL_COLLECT_BOX": "Aktifkan kotak pengumpulan email",
|
||||
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Aktifkan atau nonaktifkan kotak pengumpulan email pada percakpaan baru",
|
||||
|
|
|
@ -386,6 +386,7 @@
|
|||
"CSAT_REPORTS": {
|
||||
"HEADER": "Laporan CSAT",
|
||||
"NO_RECORDS": "Tidak ada respons survey CSAT yang tersedia.",
|
||||
"DOWNLOAD": "Download CSAT Reports",
|
||||
"FILTERS": {
|
||||
"AGENTS": {
|
||||
"PLACEHOLDER": "Choose Agents"
|
||||
|
|
|
@ -12,33 +12,11 @@
|
|||
"INPUT": "Cerca persone, Chat, risposte salvate .."
|
||||
},
|
||||
"FILTER_ALL": "Tutti",
|
||||
"STATUS_TABS": [
|
||||
{
|
||||
"NAME": "Aperte",
|
||||
"KEY": "contaaperture"
|
||||
"ASSIGNEE_TYPE_TABS": {
|
||||
"me": "Mie",
|
||||
"unassigned": "Non assegnato",
|
||||
"all": "Tutti"
|
||||
},
|
||||
{
|
||||
"NAME": "Risolti",
|
||||
"KEY": "Conteggio"
|
||||
}
|
||||
],
|
||||
"ASSIGNEE_TYPE_TABS": [
|
||||
{
|
||||
"NAME": "Mie",
|
||||
"KEY": "Io",
|
||||
"COUNT_KEY": "contaMinore"
|
||||
},
|
||||
{
|
||||
"NAME": "Non assegnato",
|
||||
"KEY": "non assegnato",
|
||||
"COUNT_KEY": "unAssignedCount"
|
||||
},
|
||||
{
|
||||
"NAME": "Tutti",
|
||||
"KEY": "Tutti",
|
||||
"COUNT_KEY": "allCount"
|
||||
}
|
||||
],
|
||||
"CHAT_STATUS_FILTER_ITEMS": {
|
||||
"open": {
|
||||
"TEXT": "Aperte"
|
||||
|
|
|
@ -341,10 +341,6 @@
|
|||
"AUTO_ASSIGNMENT_SUCCESS_MESSAGE": "Assegnazione automatica aggiornata correttamente",
|
||||
"ERROR_MESSAGE": "Impossibile aggiornare il colore del widget. Riprova più tardi."
|
||||
},
|
||||
"AUTO_ASSIGNMENT": {
|
||||
"ENABLED": "Abilitato",
|
||||
"DISABLED": "Disabilitato"
|
||||
},
|
||||
"EMAIL_COLLECT_BOX": {
|
||||
"ENABLED": "Abilitato",
|
||||
"DISABLED": "Disabilitato"
|
||||
|
@ -402,6 +398,8 @@
|
|||
"MESSENGER_SUB_HEAD": "Posiziona questo pulsante all'interno del tuo tag body",
|
||||
"INBOX_AGENTS": "Agenti",
|
||||
"INBOX_AGENTS_SUB_TEXT": "Aggiungi o rimuovi agenti da questa casella",
|
||||
"AGENT_ASSIGNMENT": "Assegnazione conversazione",
|
||||
"AGENT_ASSIGNMENT_SUB_TEXT": "Aggiorna le impostazioni di assegnazione della conversazione",
|
||||
"UPDATE": "Aggiorna",
|
||||
"ENABLE_EMAIL_COLLECT_BOX": "Abilita casella di raccolta email",
|
||||
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Abilita o disabilita la casella di raccolta email nella nuova conversazione",
|
||||
|
|
|
@ -386,6 +386,7 @@
|
|||
"CSAT_REPORTS": {
|
||||
"HEADER": "Rapporti CSAT",
|
||||
"NO_RECORDS": "Non ci sono risposte al sondaggio CSAT disponibili.",
|
||||
"DOWNLOAD": "Scarica report CSAT",
|
||||
"FILTERS": {
|
||||
"AGENTS": {
|
||||
"PLACEHOLDER": "Scegli agenti"
|
||||
|
@ -420,7 +421,7 @@
|
|||
"ACCOUNT_CONVERSATIONS": {
|
||||
"HEADER": "Conversazioni aperte",
|
||||
"LOADING_MESSAGE": "Caricamento metriche conversazioni...",
|
||||
"OPEN": "Aperte",
|
||||
"OPEN": "Apri",
|
||||
"UNATTENDED": "Non partecipate",
|
||||
"UNASSIGNED": "Non assegnato"
|
||||
},
|
||||
|
|
|
@ -151,7 +151,7 @@
|
|||
},
|
||||
"SIDEBAR": {
|
||||
"CURRENTLY_VIEWING_ACCOUNT": "Visualizzazione attuale:",
|
||||
"SWITCH": "Switch",
|
||||
"SWITCH": "Scambia",
|
||||
"CONVERSATIONS": "Conversazioni",
|
||||
"ALL_CONVERSATIONS": "Tutte le conversazioni",
|
||||
"MENTIONED_CONVERSATIONS": "Menzioni",
|
||||
|
|
|
@ -1,28 +1,28 @@
|
|||
{
|
||||
"FILTER": {
|
||||
"TITLE": "Filter Conversations",
|
||||
"SUBTITLE": "Add filters below and hit 'Apply filters' to filter conversations.",
|
||||
"ADD_NEW_FILTER": "Add Filter",
|
||||
"FILTER_DELETE_ERROR": "You should have atleast one filter to save",
|
||||
"SUBMIT_BUTTON_LABEL": "Apply filters",
|
||||
"SUBTITLE": "会話のフィルターを行うには、適用したいフィルターを選択して「フィルターを適用」を押してください。",
|
||||
"ADD_NEW_FILTER": "フィルターを追加",
|
||||
"FILTER_DELETE_ERROR": "保存するには少なくとも一つのフィルター選択が必要です。",
|
||||
"SUBMIT_BUTTON_LABEL": "フィルターを適用",
|
||||
"CANCEL_BUTTON_LABEL": "キャンセル",
|
||||
"CLEAR_BUTTON_LABEL": "Clear Filters",
|
||||
"EMPTY_VALUE_ERROR": "Value is required",
|
||||
"TOOLTIP_LABEL": "Filter conversations",
|
||||
"CLEAR_BUTTON_LABEL": "フィルターをクリア",
|
||||
"EMPTY_VALUE_ERROR": "値は必須です",
|
||||
"TOOLTIP_LABEL": "会話をフィルターする",
|
||||
"QUERY_DROPDOWN_LABELS": {
|
||||
"AND": "AND",
|
||||
"OR": "OR"
|
||||
},
|
||||
"OPERATOR_LABELS": {
|
||||
"equal_to": "Equal to",
|
||||
"not_equal_to": "Not equal to",
|
||||
"contains": "Contains",
|
||||
"does_not_contain": "Does not contain",
|
||||
"is_present": "Is present",
|
||||
"is_not_present": "Is not present",
|
||||
"is_greater_than": "Is greater than",
|
||||
"is_less_than": "Is lesser than",
|
||||
"days_before": "Is x days before"
|
||||
"equal_to": "等しい",
|
||||
"not_equal_to": "等しくない",
|
||||
"contains": "含む",
|
||||
"does_not_contain": "含まない",
|
||||
"is_present": "存在する",
|
||||
"is_not_present": "存在しない",
|
||||
"is_greater_than": "より大きい",
|
||||
"is_less_than": "より小さい",
|
||||
"days_before": "x日前"
|
||||
},
|
||||
"ATTRIBUTE_LABELS": {
|
||||
"TRUE": "True",
|
||||
|
@ -30,16 +30,16 @@
|
|||
},
|
||||
"ATTRIBUTES": {
|
||||
"STATUS": "状況",
|
||||
"ASSIGNEE_NAME": "Assignee Name",
|
||||
"ASSIGNEE_NAME": "担当者名",
|
||||
"INBOX_NAME": "受信トレイ名",
|
||||
"TEAM_NAME": "Team Name",
|
||||
"TEAM_NAME": "チーム名",
|
||||
"CONVERSATION_IDENTIFIER": "Conversation Identifier",
|
||||
"CAMPAIGN_NAME": "Campaign Name",
|
||||
"CAMPAIGN_NAME": "キャンペーンの名前",
|
||||
"LABELS": "ラベル",
|
||||
"BROWSER_LANGUAGE": "Browser Language",
|
||||
"COUNTRY_NAME": "Country Name",
|
||||
"REFERER_LINK": "Referer link",
|
||||
"CUSTOM_ATTRIBUTE_LIST": "List",
|
||||
"BROWSER_LANGUAGE": "ブラウザの言語",
|
||||
"COUNTRY_NAME": "国名",
|
||||
"REFERER_LINK": "参照者のリンク",
|
||||
"CUSTOM_ATTRIBUTE_LIST": "リスト",
|
||||
"CUSTOM_ATTRIBUTE_TEXT": "Text",
|
||||
"CUSTOM_ATTRIBUTE_NUMBER": "Number",
|
||||
"CUSTOM_ATTRIBUTE_LINK": "Link",
|
||||
|
@ -58,11 +58,11 @@
|
|||
"LABEL": "Name this filter",
|
||||
"PLACEHOLDER": "Enter a name for this filter",
|
||||
"ERROR_MESSAGE": "Name is required",
|
||||
"SAVE_BUTTON": "Save filter",
|
||||
"SAVE_BUTTON": "フィルターの保存",
|
||||
"CANCEL_BUTTON": "キャンセル",
|
||||
"API_FOLDERS": {
|
||||
"SUCCESS_MESSAGE": "Folder created successfully",
|
||||
"ERROR_MESSAGE": "Error while creating folder"
|
||||
"SUCCESS_MESSAGE": "フォルダが正常に作成されました",
|
||||
"ERROR_MESSAGE": "フォルダの作成中にエラーが発生しました"
|
||||
},
|
||||
"API_SEGMENTS": {
|
||||
"SUCCESS_MESSAGE": "Segment created successfully",
|
||||
|
|
|
@ -12,33 +12,11 @@
|
|||
"INPUT": "人物、チャット、保存された返信を検索する"
|
||||
},
|
||||
"FILTER_ALL": "すべて",
|
||||
"STATUS_TABS": [
|
||||
{
|
||||
"NAME": "開く",
|
||||
"KEY": "openCount"
|
||||
"ASSIGNEE_TYPE_TABS": {
|
||||
"me": "自分",
|
||||
"unassigned": "未割当",
|
||||
"all": "すべて"
|
||||
},
|
||||
{
|
||||
"NAME": "解決済み",
|
||||
"KEY": "allConvCount"
|
||||
}
|
||||
],
|
||||
"ASSIGNEE_TYPE_TABS": [
|
||||
{
|
||||
"NAME": "自分",
|
||||
"KEY": "me",
|
||||
"COUNT_KEY": "mineCount"
|
||||
},
|
||||
{
|
||||
"NAME": "未割当",
|
||||
"KEY": "unassigned",
|
||||
"COUNT_KEY": "unAssignedCount"
|
||||
},
|
||||
{
|
||||
"NAME": "すべて",
|
||||
"KEY": "all",
|
||||
"COUNT_KEY": "allCount"
|
||||
}
|
||||
],
|
||||
"CHAT_STATUS_FILTER_ITEMS": {
|
||||
"open": {
|
||||
"TEXT": "開く"
|
||||
|
|
|
@ -186,7 +186,7 @@
|
|||
"SEARCH_BUTTON": "Search",
|
||||
"SEARCH_INPUT_PLACEHOLDER": "Search for contacts",
|
||||
"FILTER_CONTACTS": "Filter",
|
||||
"FILTER_CONTACTS_SAVE": "Save filter",
|
||||
"FILTER_CONTACTS_SAVE": "フィルターの保存",
|
||||
"FILTER_CONTACTS_DELETE": "Delete filter",
|
||||
"LIST": {
|
||||
"LOADING_MESSAGE": "Loading contacts...",
|
||||
|
|
|
@ -2,28 +2,28 @@
|
|||
"CONTACTS_FILTER": {
|
||||
"TITLE": "Filter Contacts",
|
||||
"SUBTITLE": "Add filters below and hit 'Submit' to filter contacts.",
|
||||
"ADD_NEW_FILTER": "Add Filter",
|
||||
"ADD_NEW_FILTER": "フィルターを追加",
|
||||
"CLEAR_ALL_FILTERS": "Clear All Filters",
|
||||
"FILTER_DELETE_ERROR": "You should have atleast one filter to save",
|
||||
"FILTER_DELETE_ERROR": "保存するには少なくとも一つのフィルター選択が必要です。",
|
||||
"SUBMIT_BUTTON_LABEL": "送信",
|
||||
"CANCEL_BUTTON_LABEL": "キャンセル",
|
||||
"CLEAR_BUTTON_LABEL": "Clear Filters",
|
||||
"EMPTY_VALUE_ERROR": "Value is required",
|
||||
"CLEAR_BUTTON_LABEL": "フィルターをクリア",
|
||||
"EMPTY_VALUE_ERROR": "値は必須です",
|
||||
"TOOLTIP_LABEL": "Filter contacts",
|
||||
"QUERY_DROPDOWN_LABELS": {
|
||||
"AND": "AND",
|
||||
"OR": "OR"
|
||||
},
|
||||
"OPERATOR_LABELS": {
|
||||
"equal_to": "Equal to",
|
||||
"not_equal_to": "Not equal to",
|
||||
"contains": "Contains",
|
||||
"does_not_contain": "Does not contain",
|
||||
"is_present": "Is present",
|
||||
"is_not_present": "Is not present",
|
||||
"is_greater_than": "Is greater than",
|
||||
"equal_to": "等しい",
|
||||
"not_equal_to": "等しくない",
|
||||
"contains": "含む",
|
||||
"does_not_contain": "含まない",
|
||||
"is_present": "存在する",
|
||||
"is_not_present": "存在しない",
|
||||
"is_greater_than": "より大きい",
|
||||
"is_lesser_than": "Is lesser than",
|
||||
"days_before": "Is x days before"
|
||||
"days_before": "x日前"
|
||||
},
|
||||
"ATTRIBUTES": {
|
||||
"NAME": "名前",
|
||||
|
@ -32,7 +32,7 @@
|
|||
"IDENTIFIER": "Identifier",
|
||||
"CITY": "City",
|
||||
"COUNTRY": "Country",
|
||||
"CUSTOM_ATTRIBUTE_LIST": "List",
|
||||
"CUSTOM_ATTRIBUTE_LIST": "リスト",
|
||||
"CUSTOM_ATTRIBUTE_TEXT": "Text",
|
||||
"CUSTOM_ATTRIBUTE_NUMBER": "Number",
|
||||
"CUSTOM_ATTRIBUTE_LINK": "Link",
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue