mno-enterprise-core 2.0.9 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/mno_enterprise/application_controller.rb +10 -20
- data/app/models/mno_enterprise/base_resource.rb +1 -2
- data/app/models/mno_enterprise/impac/dashboard.rb +24 -22
- data/app/models/mno_enterprise/impac/kpi.rb +1 -1
- data/app/models/mno_enterprise/impac/widget.rb +1 -1
- data/app/models/mno_enterprise/user.rb +2 -1
- data/config/initializers/audit_log.rb +2 -0
- data/config/initializers/config.rb +3 -0
- data/config/locales/models/app/en.yml +25 -0
- data/config/locales/models/app/id.yml +25 -0
- data/config/locales/models/app/zh.yml +25 -0
- data/config/locales/models/app_instance/en.yml +24 -0
- data/config/locales/models/app_instance/id.yml +24 -0
- data/config/locales/models/app_instance/zh.yml +24 -0
- data/config/locales/models/credit_card/en.yml +23 -0
- data/config/locales/models/credit_card/id.yml +23 -0
- data/config/locales/models/credit_card/zh.yml +23 -0
- data/config/locales/models/deletion_request/en.yml +9 -0
- data/config/locales/models/deletion_request/id.yml +9 -0
- data/config/locales/models/deletion_request/zh.yml +9 -0
- data/config/locales/models/impac/dashboard/en.yml +13 -0
- data/config/locales/models/impac/dashboard/id.yml +13 -0
- data/config/locales/models/impac/dashboard/zh.yml +13 -0
- data/config/locales/models/impac/widget/en.yml +13 -0
- data/config/locales/models/impac/widget/id.yml +13 -0
- data/config/locales/models/impac/widget/zh.yml +13 -0
- data/config/locales/models/invoice/en.yml +9 -0
- data/config/locales/models/invoice/id.yml +9 -0
- data/config/locales/models/invoice/zh.yml +9 -0
- data/config/locales/models/org_invite/en.yml +9 -0
- data/config/locales/models/org_invite/id.yml +9 -0
- data/config/locales/models/org_invite/zh.yml +9 -0
- data/config/locales/models/org_team/en.yml +9 -0
- data/config/locales/models/org_team/id.yml +9 -0
- data/config/locales/models/org_team/zh.yml +9 -0
- data/config/locales/models/organization/en.yml +24 -0
- data/config/locales/models/organization/id.yml +24 -0
- data/config/locales/models/organization/zh.yml +24 -0
- data/config/locales/models/user/en.yml +45 -0
- data/config/locales/models/user/id.yml +45 -0
- data/config/locales/models/user/zh.yml +44 -0
- data/config/locales/templates/components/en.yml +21 -0
- data/config/locales/templates/components/id.yml +21 -0
- data/config/locales/templates/components/zh.yml +21 -0
- data/config/locales/templates/dashboard/en.yml +60 -0
- data/config/locales/templates/dashboard/id.yml +50 -0
- data/config/locales/templates/dashboard/marketplace/en.yml +16 -0
- data/config/locales/templates/dashboard/marketplace/id.yml +14 -0
- data/config/locales/templates/dashboard/marketplace/zh.yml +14 -0
- data/config/locales/templates/dashboard/organization/en.yml +107 -0
- data/config/locales/templates/dashboard/organization/id.yml +103 -0
- data/config/locales/templates/dashboard/organization/zh.yml +103 -0
- data/config/locales/templates/dashboard/teams/en.yml +48 -0
- data/config/locales/templates/dashboard/teams/id.yml +43 -0
- data/config/locales/templates/dashboard/teams/zh.yml +43 -0
- data/config/locales/templates/dashboard/zh.yml +54 -0
- data/config/locales/templates/impac/en.yml +24 -0
- data/config/locales/templates/impac/id.yml +24 -0
- data/config/locales/templates/impac/modals/en.yml +31 -0
- data/config/locales/templates/impac/modals/id.yml +29 -0
- data/config/locales/templates/impac/modals/zh.yml +28 -0
- data/config/locales/templates/impac/widgets/common/en.yml +9 -0
- data/config/locales/templates/impac/widgets/common/id.yml +9 -0
- data/config/locales/templates/impac/widgets/common/zh.yml +9 -0
- data/config/locales/templates/impac/widgets/en.yml +66 -0
- data/config/locales/templates/impac/widgets/id.yml +58 -0
- data/config/locales/templates/impac/widgets/settings/en.yml +23 -0
- data/config/locales/templates/impac/widgets/settings/id.yml +19 -0
- data/config/locales/templates/impac/widgets/settings/zh.yml +19 -0
- data/config/locales/templates/impac/widgets/zh.yml +58 -0
- data/config/locales/templates/impac/zh.yml +24 -0
- data/config/locales/templates/modals/en.yml +9 -0
- data/config/locales/templates/modals/id.yml +9 -0
- data/config/locales/templates/modals/zh.yml +9 -0
- data/config/locales/views/auth/confirmations/en.yml +17 -0
- data/config/locales/views/auth/confirmations/id.yml +17 -0
- data/config/locales/views/auth/confirmations/zh.yml +17 -0
- data/config/locales/views/auth/passwords/en.yml +10 -0
- data/config/locales/views/auth/passwords/id.yml +10 -0
- data/config/locales/views/auth/passwords/zh.yml +10 -0
- data/config/locales/views/auth/registrations/en.yml +9 -0
- data/config/locales/views/auth/registrations/id.yml +9 -0
- data/config/locales/views/auth/registrations/zh.yml +8 -0
- data/config/locales/views/auth/sessions/en.yml +7 -0
- data/config/locales/views/auth/sessions/id.yml +7 -0
- data/config/locales/views/auth/sessions/zh.yml +7 -0
- data/config/locales/views/auth/shared/en.yml +12 -0
- data/config/locales/views/auth/shared/id.yml +11 -0
- data/config/locales/views/auth/shared/zh.yml +11 -0
- data/config/locales/views/auth/unlocks/en.yml +7 -0
- data/config/locales/views/auth/unlocks/id.yml +7 -0
- data/config/locales/views/auth/unlocks/zh.yml +7 -0
- data/config/locales/views/pages/en.yml +19 -0
- data/config/locales/views/pages/id.yml +18 -0
- data/config/locales/views/pages/zh.yml +18 -0
- data/config/locales/views/provision/en.yml +12 -0
- data/config/locales/views/provision/id.yml +11 -0
- data/config/locales/views/provision/zh.yml +11 -0
- data/config/locales/views/webhook/o_auth/en.yml +6 -0
- data/config/locales/views/webhook/o_auth/id.yml +6 -0
- data/config/locales/views/webhook/o_auth/providers/en.yml +15 -0
- data/config/locales/views/webhook/o_auth/providers/id.yml +15 -0
- data/config/locales/views/webhook/o_auth/providers/zh.yml +15 -0
- data/config/locales/views/webhook/o_auth/zh.yml +6 -0
- data/lib/devise/models/remote_authenticatable.rb +1 -1
- data/lib/devise_extension.rb +6 -2
- data/lib/generators/mno_enterprise/dummy/dummy_generator.rb +7 -0
- data/lib/generators/mno_enterprise/dummy/templates/rails/routes.rb +0 -6
- data/lib/generators/mno_enterprise/install/install_generator.rb +79 -33
- data/lib/generators/mno_enterprise/install/templates/Procfile +1 -1
- data/lib/generators/mno_enterprise/install/templates/Procfile.dev +2 -0
- data/lib/generators/mno_enterprise/install/templates/config/application.yml +11 -0
- data/lib/generators/mno_enterprise/install/templates/config/initializers/mno_enterprise.rb +18 -15
- data/lib/generators/mno_enterprise/install/templates/config/settings.yml +7 -0
- data/lib/generators/mno_enterprise/install/templates/config/settings/development.yml +6 -0
- data/lib/generators/mno_enterprise/install/templates/config/settings/production.yml +6 -0
- data/lib/generators/mno_enterprise/install/templates/config/settings/test.yml +6 -0
- data/lib/generators/mno_enterprise/install/templates/config/settings/uat.yml +6 -0
- data/lib/generators/mno_enterprise/install/templates/stylesheets/{main.less_erb → main.less} +16 -3
- data/lib/generators/mno_enterprise/templates/scripts/puma.rb +3 -3
- data/lib/her_extension/model/relation.rb +0 -13
- data/lib/mno_enterprise/concerns/controllers/auth/confirmations_controller.rb +24 -19
- data/lib/mno_enterprise/concerns/controllers/i18n.rb +16 -0
- data/lib/mno_enterprise/concerns/models/app_instance.rb +0 -4
- data/lib/mno_enterprise/concerns/models/organization.rb +1 -1
- data/lib/mno_enterprise/core.rb +20 -7
- data/lib/mno_enterprise/engine.rb +19 -0
- data/lib/mno_enterprise/testing_support/common_rake.rb +1 -1
- data/lib/mno_enterprise/testing_support/factories/impac/kpis.rb +1 -0
- data/lib/mno_enterprise/testing_support/factories/org_invite.rb +1 -5
- data/lib/mno_enterprise/testing_support/mno_enterprise_api_test_helper.rb +1 -2
- data/lib/mno_enterprise/testing_support/shared_contexts/rake_task.rb +21 -0
- data/lib/mno_enterprise/version.rb +1 -1
- data/lib/tasks/mno_enterprise_tasks.rake +3 -5
- data/spec/controllers/mno_enterprise/i18n_spec.rb +42 -0
- data/spec/lib/her_extension/model/relation_spec.rb +0 -71
- data/spec/lib/mno_enterprise/core_engine_spec.rb +16 -0
- data/spec/mno_enterprise_spec.rb +2 -2
- data/spec/models/mno_enterprise/base_resource_spec.rb +0 -22
- metadata +152 -18
- data/lib/her_extension/middleware/mnoe_raise_error.rb +0 -21
- data/lib/her_extension/model/associations/belongs_to_association.rb +0 -25
- data/spec/controllers/mno_enterprise/application_controller_spec.rb +0 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dfe546808d905e473abc105da4fbe5234f124896
|
4
|
+
data.tar.gz: 7e8dd015d9a5b54ee9ba1fce03695f7a67af9702
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5e36dd230d6124d058ee0f1cee11c5557df773693728292d401698d833f4332b242a8eab68e5f1ef4c6d4e60bcaf994e5697381cf9279d4eac1efcda4d91fb3e
|
7
|
+
data.tar.gz: 8ffb8ac19763e88b91288a3aeb665a12d38e6eaffbcc45b63bf97a99f151283649823df6909b7d42a4412323abf6680813fc704cfc585b01b0d8eacbc4b99d98
|
@@ -8,6 +8,12 @@ module MnoEnterprise
|
|
8
8
|
before_filter :store_location
|
9
9
|
before_filter :perform_return_to
|
10
10
|
|
11
|
+
|
12
|
+
# I18n
|
13
|
+
if MnoEnterprise.i18n_enabled
|
14
|
+
include MnoEnterprise::Concerns::Controllers::I18n
|
15
|
+
end
|
16
|
+
|
11
17
|
# Angular CSRF
|
12
18
|
if MnoEnterprise.include_angular_csrf
|
13
19
|
include MnoEnterprise::Concerns::Controllers::AngularCSRF
|
@@ -92,41 +98,25 @@ module MnoEnterprise
|
|
92
98
|
# Redirect to previous url and reset it
|
93
99
|
def after_sign_in_path_for(resource)
|
94
100
|
previous_url = session.delete(:previous_url)
|
95
|
-
url =
|
101
|
+
url = MnoEnterprise.router.dashboard_path || main_app.root_url
|
96
102
|
return (return_to_url(resource) || previous_url || url)
|
97
103
|
end
|
98
104
|
|
99
105
|
# Some controllers needs to redirect to 'MySpace' which breaks if you dont use mnoe-frontend
|
100
|
-
# Rather than relying on the MainApp to define
|
106
|
+
# Rather than relying on the MainApp to define dashboard_path we check it here
|
101
107
|
# The MainApp can redefine this two methods to fit its structure
|
102
108
|
# Some of these are extracted to individuals methods like after_provision_path.
|
103
109
|
def mnoe_home_path
|
104
|
-
|
110
|
+
MnoEnterprise.router.dashboard_path || main_app.root_path
|
105
111
|
end
|
106
112
|
|
107
113
|
def mnoe_home_url
|
108
|
-
|
114
|
+
MnoEnterprise.router.dashboard_path || main_app.root_url
|
109
115
|
end
|
110
116
|
|
111
117
|
# Overwriting the sign_out redirect path method
|
112
118
|
def after_sign_out_path_for(resource_or_scope)
|
113
119
|
MnoEnterprise.router.after_sign_out_url || super
|
114
120
|
end
|
115
|
-
|
116
|
-
private
|
117
|
-
|
118
|
-
# Append params to the fragment part of an existing url String
|
119
|
-
# add_param("/#/platform/accounts", 'foo', 'bar')
|
120
|
-
# => "/#/platform/accounts?foo=bar"
|
121
|
-
# add_param("/#/platform/dashboard/he/43?en=690", 'foo', 'bar')
|
122
|
-
# => "/#/platform/dashboard/he/43?en=690&foo=bar"
|
123
|
-
def add_param_to_fragment(url, param_name, param_value)
|
124
|
-
uri = URI(url)
|
125
|
-
fragment = URI(uri.fragment || "")
|
126
|
-
params = URI.decode_www_form(fragment.query || "") << [param_name, param_value]
|
127
|
-
fragment.query = URI.encode_www_form(params)
|
128
|
-
uri.fragment = fragment.to_s
|
129
|
-
uri.to_s
|
130
|
-
end
|
131
121
|
end
|
132
122
|
end
|
@@ -3,29 +3,31 @@ module MnoEnterprise
|
|
3
3
|
|
4
4
|
attributes :name, :widgets_order, :organization_ids, :widgets_templates, :currency
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
|
6
|
+
has_many :widgets, class_name: 'MnoEnterprise::Impac::Widget', dependent: :destroy
|
7
|
+
has_many :kpis, class_name: 'MnoEnterprise::Impac::Kpi', dependent: :destroy
|
8
|
+
belongs_to :owner, polymorphic: true
|
9
|
+
|
10
|
+
#============================================
|
11
|
+
# Instance methods
|
12
|
+
#============================================
|
13
|
+
# Return the full name of this dashboard
|
14
|
+
# Currently a simple accessor to the dashboard name (used to include the company name)
|
15
|
+
def full_name
|
16
|
+
self.name
|
17
|
+
end
|
18
|
+
|
19
|
+
# Return all the organizations linked to this dashboard and to which
|
20
|
+
# the user has access
|
21
|
+
def organizations
|
22
|
+
self.organization_ids.map do |uid|
|
23
|
+
MnoEnterprise::Organization.find_by(uid: uid)
|
24
|
+
end
|
25
|
+
end
|
9
26
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
# Currently a simple accessor to the dashboard name (used to include the company name)
|
15
|
-
def full_name
|
16
|
-
self.name
|
17
|
-
end
|
18
|
-
|
19
|
-
# Return all the organizations linked to this dashboard and to which
|
20
|
-
# the user has access
|
21
|
-
def organizations
|
22
|
-
MnoEnterprise::Organization.where('uid.in' => self.organization_ids).to_a
|
23
|
-
end
|
24
|
-
|
25
|
-
def sorted_widgets
|
26
|
-
order = self.widgets_order.map(&:to_i) | self.widgets.map{|w| w.id }
|
27
|
-
order.map { |id| self.widgets.to_a.find{ |w| w.id == id} }.compact
|
28
|
-
end
|
27
|
+
def sorted_widgets
|
28
|
+
order = self.widgets_order.map(&:to_i) | self.widgets.map{|w| w.id }
|
29
|
+
order.map { |id| self.widgets.to_a.find{ |w| w.id == id} }.compact
|
30
|
+
end
|
29
31
|
|
30
32
|
def to_audit_event
|
31
33
|
name
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module MnoEnterprise
|
2
2
|
class Impac::Kpi < BaseResource
|
3
3
|
|
4
|
-
attributes :settings, :targets, :extra_params, :endpoint, :source, :element_watched
|
4
|
+
attributes :name, :settings, :targets, :extra_params, :endpoint, :source, :element_watched
|
5
5
|
|
6
6
|
belongs_to :dashboard, class_name: 'MnoEnterprise::Impac::Dashboard'
|
7
7
|
|
@@ -47,7 +47,7 @@ module MnoEnterprise
|
|
47
47
|
:remember_created_at, :sign_in_count, :current_sign_in_at, :last_sign_in_at, :current_sign_in_ip,
|
48
48
|
:last_sign_in_ip, :confirmation_token, :confirmed_at, :confirmation_sent_at, :unconfirmed_email,
|
49
49
|
:failed_attempts, :unlock_token, :locked_at, :name, :surname, :company, :phone, :phone_country_code,
|
50
|
-
:geo_country_code, :geo_state_code, :geo_city, :website, :orga_on_create, :sso_session, :current_password_required
|
50
|
+
:geo_country_code, :geo_state_code, :geo_city, :website, :orga_on_create, :sso_session, :current_password_required
|
51
51
|
|
52
52
|
define_model_callbacks :validation #required by Devise
|
53
53
|
devise :remote_authenticatable, :registerable, :recoverable, :rememberable,
|
@@ -56,6 +56,7 @@ module MnoEnterprise
|
|
56
56
|
#================================
|
57
57
|
# Validation
|
58
58
|
#================================
|
59
|
+
validates_uniqueness_of :email, allow_blank: true, if: :email_changed?
|
59
60
|
|
60
61
|
if Devise.password_regex
|
61
62
|
validates :password, format: { with: Devise.password_regex, message: Devise.password_regex_message }, if: :password_required?
|
@@ -0,0 +1,25 @@
|
|
1
|
+
en:
|
2
|
+
activemodel:
|
3
|
+
models:
|
4
|
+
mno_enterprise/app: App
|
5
|
+
attributes:
|
6
|
+
mno_enterprise/app:
|
7
|
+
categories: Categories
|
8
|
+
created_at: Created at
|
9
|
+
description: Description
|
10
|
+
id: Id
|
11
|
+
key_benefits: Key benefits
|
12
|
+
key_features: Key features
|
13
|
+
logo: Logo
|
14
|
+
name: Name
|
15
|
+
nid: Nid
|
16
|
+
pictures: Pictures
|
17
|
+
popup_description: Popup description
|
18
|
+
slug: Slug
|
19
|
+
stack: Stack
|
20
|
+
terms_url: Link to terms of use
|
21
|
+
testimonials: Testimonials
|
22
|
+
tiny_description: Short description
|
23
|
+
updated_at: Updated at
|
24
|
+
website: Website
|
25
|
+
worldwide_usage: Worldwide usage
|
@@ -0,0 +1,25 @@
|
|
1
|
+
id:
|
2
|
+
activemodel:
|
3
|
+
models:
|
4
|
+
mno_enterprise/app: Aplikasi
|
5
|
+
attributes:
|
6
|
+
mno_enterprise/app:
|
7
|
+
categories: Kategori
|
8
|
+
created_at: Dibuat pada
|
9
|
+
description: Deskripsi
|
10
|
+
id: Id
|
11
|
+
key_benefits: Manfaat utama
|
12
|
+
key_features: Fitur utama
|
13
|
+
logo: Logo
|
14
|
+
name: Nama
|
15
|
+
nid: Nid
|
16
|
+
pictures: Gambar
|
17
|
+
popup_description: Deskripsi popup
|
18
|
+
slug: Slug
|
19
|
+
stack: Susunan
|
20
|
+
terms_url: Tautan ke ketentuan penggunaan
|
21
|
+
testimonials: Testimoni
|
22
|
+
tiny_description: Deskripsi singkat
|
23
|
+
updated_at: Diperbarui pada
|
24
|
+
website: Situs web
|
25
|
+
worldwide_usage: Penggunaan di seluruh dunia
|
@@ -0,0 +1,25 @@
|
|
1
|
+
zh:
|
2
|
+
activemodel:
|
3
|
+
models:
|
4
|
+
mno_enterprise/app: "应用程序"
|
5
|
+
attributes:
|
6
|
+
mno_enterprise/app:
|
7
|
+
categories: "类别"
|
8
|
+
created_at: "创建于"
|
9
|
+
description: "说明"
|
10
|
+
id: Id
|
11
|
+
key_benefits: "主要优点"
|
12
|
+
key_features: "主要特点"
|
13
|
+
logo: "图标"
|
14
|
+
name: "名称"
|
15
|
+
nid: "节点id"
|
16
|
+
pictures: "图片"
|
17
|
+
popup_description: "弹出窗口说明"
|
18
|
+
slug: "别名"
|
19
|
+
stack: "堆叠"
|
20
|
+
terms_url: "使用条款链接"
|
21
|
+
testimonials: "客户见证"
|
22
|
+
tiny_description: "简介"
|
23
|
+
updated_at: "更新于"
|
24
|
+
website: "网址"
|
25
|
+
worldwide_usage: "全球使用"
|
@@ -0,0 +1,24 @@
|
|
1
|
+
en:
|
2
|
+
activemodel:
|
3
|
+
models:
|
4
|
+
mno_enterprise/app_instance: App instance
|
5
|
+
attributes:
|
6
|
+
mno_enterprise/app_instance:
|
7
|
+
app_id: App
|
8
|
+
autostop_at: Autostop at
|
9
|
+
autostop_interval: Autostop interval
|
10
|
+
billing_type: Billing type
|
11
|
+
created_at: Created at
|
12
|
+
id: Id
|
13
|
+
name: Name
|
14
|
+
next_status: Next status
|
15
|
+
owner_id: Owner
|
16
|
+
owner_type: Owner type
|
17
|
+
soa_enabled: Soa enabled
|
18
|
+
stack: Stack
|
19
|
+
started_at: Started at
|
20
|
+
status: Status
|
21
|
+
stopped_at: Stopped at
|
22
|
+
terminated_at: Terminated at
|
23
|
+
uid: Uid
|
24
|
+
updated_at: Updated at
|
@@ -0,0 +1,24 @@
|
|
1
|
+
id:
|
2
|
+
activemodel:
|
3
|
+
models:
|
4
|
+
mno_enterprise/app_instance: App instance
|
5
|
+
attributes:
|
6
|
+
mno_enterprise/app_instance:
|
7
|
+
app_id: Aplikasi
|
8
|
+
autostop_at: Autostop pada
|
9
|
+
autostop_interval: Interval autostop
|
10
|
+
billing_type: Jenis penagihan
|
11
|
+
created_at: Dibuat pada
|
12
|
+
id: Id
|
13
|
+
name: Nama
|
14
|
+
next_status: Status berikutnya
|
15
|
+
owner_id: Pemilik
|
16
|
+
owner_type: Jenis pemilik
|
17
|
+
soa_enabled: Soa diaktifkan
|
18
|
+
stack: Susunan
|
19
|
+
started_at: Dimulai pada
|
20
|
+
status: Status
|
21
|
+
stopped_at: Berhenti pada
|
22
|
+
terminated_at: Diakhiri pada
|
23
|
+
uid: Uid
|
24
|
+
updated_at: Diperbarui pada
|
@@ -0,0 +1,24 @@
|
|
1
|
+
zh:
|
2
|
+
activemodel:
|
3
|
+
models:
|
4
|
+
mno_enterprise/app_instance: "应用程序实例"
|
5
|
+
attributes:
|
6
|
+
mno_enterprise/app_instance:
|
7
|
+
app_id: "应用程序"
|
8
|
+
autostop_at: "自动停止于"
|
9
|
+
autostop_interval: "自动停止间隔"
|
10
|
+
billing_type: "计费类型"
|
11
|
+
created_at: "创建于"
|
12
|
+
id: Id
|
13
|
+
name: "名称"
|
14
|
+
next_status: "下一个状态"
|
15
|
+
owner_id: "所有者"
|
16
|
+
owner_type: "所有者类型"
|
17
|
+
soa_enabled: "Soa已启用"
|
18
|
+
stack: "堆叠"
|
19
|
+
started_at: "开始于"
|
20
|
+
status: "状态"
|
21
|
+
stopped_at: "停止于"
|
22
|
+
terminated_at: "终止于"
|
23
|
+
uid: Uid
|
24
|
+
updated_at: "更新于"
|
@@ -0,0 +1,23 @@
|
|
1
|
+
en:
|
2
|
+
activemodel:
|
3
|
+
models:
|
4
|
+
mno_enterprise/credit_card: Credit card
|
5
|
+
attributes:
|
6
|
+
mno_enterprise/credit_card:
|
7
|
+
billing_address: Billing address
|
8
|
+
billing_city: City
|
9
|
+
billing_country: Country
|
10
|
+
billing_postcode: Postcode
|
11
|
+
country: Country
|
12
|
+
created_at: Created at
|
13
|
+
first_name: First name
|
14
|
+
id: Id
|
15
|
+
last_name: Last name
|
16
|
+
masked_number: Masked number
|
17
|
+
month: Month
|
18
|
+
number: Number
|
19
|
+
organization_id: Organization
|
20
|
+
title: Title
|
21
|
+
updated_at: Updated at
|
22
|
+
verification_value: CVV
|
23
|
+
year: Year
|
@@ -0,0 +1,23 @@
|
|
1
|
+
id:
|
2
|
+
activemodel:
|
3
|
+
models:
|
4
|
+
mno_enterprise/credit_card: Kartu kredit
|
5
|
+
attributes:
|
6
|
+
mno_enterprise/credit_card:
|
7
|
+
billing_address: Alamat penagihan
|
8
|
+
billing_city: Kota
|
9
|
+
billing_country: Negara
|
10
|
+
billing_postcode: Kode pos
|
11
|
+
country: Negara
|
12
|
+
created_at: Dibuat pada
|
13
|
+
first_name: Nama depan
|
14
|
+
id: Id
|
15
|
+
last_name: Nama belakang
|
16
|
+
masked_number: Nomor bermasker
|
17
|
+
month: Bulan
|
18
|
+
number: Nomor
|
19
|
+
organization_id: Organisasi
|
20
|
+
title: Judul
|
21
|
+
updated_at: Diperbarui pada
|
22
|
+
verification_value: Verifikasi Kartu Nilai (CVV)
|
23
|
+
year: Tahun
|
@@ -0,0 +1,23 @@
|
|
1
|
+
zh:
|
2
|
+
activemodel:
|
3
|
+
models:
|
4
|
+
mno_enterprise/credit_card: "信用卡"
|
5
|
+
attributes:
|
6
|
+
mno_enterprise/credit_card:
|
7
|
+
billing_address: "帐单地址"
|
8
|
+
billing_city: "城市"
|
9
|
+
billing_country: "国家"
|
10
|
+
billing_postcode: "邮编"
|
11
|
+
country: "国家"
|
12
|
+
created_at: "创建于"
|
13
|
+
first_name: "名"
|
14
|
+
id: Id
|
15
|
+
last_name: "姓"
|
16
|
+
masked_number: "掩码"
|
17
|
+
month: "月"
|
18
|
+
number: "号码"
|
19
|
+
organization_id: "公司"
|
20
|
+
title: "标题"
|
21
|
+
updated_at: "更新于"
|
22
|
+
verification_value: CVV
|
23
|
+
year: "年"
|