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.
Files changed (144) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/mno_enterprise/application_controller.rb +10 -20
  3. data/app/models/mno_enterprise/base_resource.rb +1 -2
  4. data/app/models/mno_enterprise/impac/dashboard.rb +24 -22
  5. data/app/models/mno_enterprise/impac/kpi.rb +1 -1
  6. data/app/models/mno_enterprise/impac/widget.rb +1 -1
  7. data/app/models/mno_enterprise/user.rb +2 -1
  8. data/config/initializers/audit_log.rb +2 -0
  9. data/config/initializers/config.rb +3 -0
  10. data/config/locales/models/app/en.yml +25 -0
  11. data/config/locales/models/app/id.yml +25 -0
  12. data/config/locales/models/app/zh.yml +25 -0
  13. data/config/locales/models/app_instance/en.yml +24 -0
  14. data/config/locales/models/app_instance/id.yml +24 -0
  15. data/config/locales/models/app_instance/zh.yml +24 -0
  16. data/config/locales/models/credit_card/en.yml +23 -0
  17. data/config/locales/models/credit_card/id.yml +23 -0
  18. data/config/locales/models/credit_card/zh.yml +23 -0
  19. data/config/locales/models/deletion_request/en.yml +9 -0
  20. data/config/locales/models/deletion_request/id.yml +9 -0
  21. data/config/locales/models/deletion_request/zh.yml +9 -0
  22. data/config/locales/models/impac/dashboard/en.yml +13 -0
  23. data/config/locales/models/impac/dashboard/id.yml +13 -0
  24. data/config/locales/models/impac/dashboard/zh.yml +13 -0
  25. data/config/locales/models/impac/widget/en.yml +13 -0
  26. data/config/locales/models/impac/widget/id.yml +13 -0
  27. data/config/locales/models/impac/widget/zh.yml +13 -0
  28. data/config/locales/models/invoice/en.yml +9 -0
  29. data/config/locales/models/invoice/id.yml +9 -0
  30. data/config/locales/models/invoice/zh.yml +9 -0
  31. data/config/locales/models/org_invite/en.yml +9 -0
  32. data/config/locales/models/org_invite/id.yml +9 -0
  33. data/config/locales/models/org_invite/zh.yml +9 -0
  34. data/config/locales/models/org_team/en.yml +9 -0
  35. data/config/locales/models/org_team/id.yml +9 -0
  36. data/config/locales/models/org_team/zh.yml +9 -0
  37. data/config/locales/models/organization/en.yml +24 -0
  38. data/config/locales/models/organization/id.yml +24 -0
  39. data/config/locales/models/organization/zh.yml +24 -0
  40. data/config/locales/models/user/en.yml +45 -0
  41. data/config/locales/models/user/id.yml +45 -0
  42. data/config/locales/models/user/zh.yml +44 -0
  43. data/config/locales/templates/components/en.yml +21 -0
  44. data/config/locales/templates/components/id.yml +21 -0
  45. data/config/locales/templates/components/zh.yml +21 -0
  46. data/config/locales/templates/dashboard/en.yml +60 -0
  47. data/config/locales/templates/dashboard/id.yml +50 -0
  48. data/config/locales/templates/dashboard/marketplace/en.yml +16 -0
  49. data/config/locales/templates/dashboard/marketplace/id.yml +14 -0
  50. data/config/locales/templates/dashboard/marketplace/zh.yml +14 -0
  51. data/config/locales/templates/dashboard/organization/en.yml +107 -0
  52. data/config/locales/templates/dashboard/organization/id.yml +103 -0
  53. data/config/locales/templates/dashboard/organization/zh.yml +103 -0
  54. data/config/locales/templates/dashboard/teams/en.yml +48 -0
  55. data/config/locales/templates/dashboard/teams/id.yml +43 -0
  56. data/config/locales/templates/dashboard/teams/zh.yml +43 -0
  57. data/config/locales/templates/dashboard/zh.yml +54 -0
  58. data/config/locales/templates/impac/en.yml +24 -0
  59. data/config/locales/templates/impac/id.yml +24 -0
  60. data/config/locales/templates/impac/modals/en.yml +31 -0
  61. data/config/locales/templates/impac/modals/id.yml +29 -0
  62. data/config/locales/templates/impac/modals/zh.yml +28 -0
  63. data/config/locales/templates/impac/widgets/common/en.yml +9 -0
  64. data/config/locales/templates/impac/widgets/common/id.yml +9 -0
  65. data/config/locales/templates/impac/widgets/common/zh.yml +9 -0
  66. data/config/locales/templates/impac/widgets/en.yml +66 -0
  67. data/config/locales/templates/impac/widgets/id.yml +58 -0
  68. data/config/locales/templates/impac/widgets/settings/en.yml +23 -0
  69. data/config/locales/templates/impac/widgets/settings/id.yml +19 -0
  70. data/config/locales/templates/impac/widgets/settings/zh.yml +19 -0
  71. data/config/locales/templates/impac/widgets/zh.yml +58 -0
  72. data/config/locales/templates/impac/zh.yml +24 -0
  73. data/config/locales/templates/modals/en.yml +9 -0
  74. data/config/locales/templates/modals/id.yml +9 -0
  75. data/config/locales/templates/modals/zh.yml +9 -0
  76. data/config/locales/views/auth/confirmations/en.yml +17 -0
  77. data/config/locales/views/auth/confirmations/id.yml +17 -0
  78. data/config/locales/views/auth/confirmations/zh.yml +17 -0
  79. data/config/locales/views/auth/passwords/en.yml +10 -0
  80. data/config/locales/views/auth/passwords/id.yml +10 -0
  81. data/config/locales/views/auth/passwords/zh.yml +10 -0
  82. data/config/locales/views/auth/registrations/en.yml +9 -0
  83. data/config/locales/views/auth/registrations/id.yml +9 -0
  84. data/config/locales/views/auth/registrations/zh.yml +8 -0
  85. data/config/locales/views/auth/sessions/en.yml +7 -0
  86. data/config/locales/views/auth/sessions/id.yml +7 -0
  87. data/config/locales/views/auth/sessions/zh.yml +7 -0
  88. data/config/locales/views/auth/shared/en.yml +12 -0
  89. data/config/locales/views/auth/shared/id.yml +11 -0
  90. data/config/locales/views/auth/shared/zh.yml +11 -0
  91. data/config/locales/views/auth/unlocks/en.yml +7 -0
  92. data/config/locales/views/auth/unlocks/id.yml +7 -0
  93. data/config/locales/views/auth/unlocks/zh.yml +7 -0
  94. data/config/locales/views/pages/en.yml +19 -0
  95. data/config/locales/views/pages/id.yml +18 -0
  96. data/config/locales/views/pages/zh.yml +18 -0
  97. data/config/locales/views/provision/en.yml +12 -0
  98. data/config/locales/views/provision/id.yml +11 -0
  99. data/config/locales/views/provision/zh.yml +11 -0
  100. data/config/locales/views/webhook/o_auth/en.yml +6 -0
  101. data/config/locales/views/webhook/o_auth/id.yml +6 -0
  102. data/config/locales/views/webhook/o_auth/providers/en.yml +15 -0
  103. data/config/locales/views/webhook/o_auth/providers/id.yml +15 -0
  104. data/config/locales/views/webhook/o_auth/providers/zh.yml +15 -0
  105. data/config/locales/views/webhook/o_auth/zh.yml +6 -0
  106. data/lib/devise/models/remote_authenticatable.rb +1 -1
  107. data/lib/devise_extension.rb +6 -2
  108. data/lib/generators/mno_enterprise/dummy/dummy_generator.rb +7 -0
  109. data/lib/generators/mno_enterprise/dummy/templates/rails/routes.rb +0 -6
  110. data/lib/generators/mno_enterprise/install/install_generator.rb +79 -33
  111. data/lib/generators/mno_enterprise/install/templates/Procfile +1 -1
  112. data/lib/generators/mno_enterprise/install/templates/Procfile.dev +2 -0
  113. data/lib/generators/mno_enterprise/install/templates/config/application.yml +11 -0
  114. data/lib/generators/mno_enterprise/install/templates/config/initializers/mno_enterprise.rb +18 -15
  115. data/lib/generators/mno_enterprise/install/templates/config/settings.yml +7 -0
  116. data/lib/generators/mno_enterprise/install/templates/config/settings/development.yml +6 -0
  117. data/lib/generators/mno_enterprise/install/templates/config/settings/production.yml +6 -0
  118. data/lib/generators/mno_enterprise/install/templates/config/settings/test.yml +6 -0
  119. data/lib/generators/mno_enterprise/install/templates/config/settings/uat.yml +6 -0
  120. data/lib/generators/mno_enterprise/install/templates/stylesheets/{main.less_erb → main.less} +16 -3
  121. data/lib/generators/mno_enterprise/templates/scripts/puma.rb +3 -3
  122. data/lib/her_extension/model/relation.rb +0 -13
  123. data/lib/mno_enterprise/concerns/controllers/auth/confirmations_controller.rb +24 -19
  124. data/lib/mno_enterprise/concerns/controllers/i18n.rb +16 -0
  125. data/lib/mno_enterprise/concerns/models/app_instance.rb +0 -4
  126. data/lib/mno_enterprise/concerns/models/organization.rb +1 -1
  127. data/lib/mno_enterprise/core.rb +20 -7
  128. data/lib/mno_enterprise/engine.rb +19 -0
  129. data/lib/mno_enterprise/testing_support/common_rake.rb +1 -1
  130. data/lib/mno_enterprise/testing_support/factories/impac/kpis.rb +1 -0
  131. data/lib/mno_enterprise/testing_support/factories/org_invite.rb +1 -5
  132. data/lib/mno_enterprise/testing_support/mno_enterprise_api_test_helper.rb +1 -2
  133. data/lib/mno_enterprise/testing_support/shared_contexts/rake_task.rb +21 -0
  134. data/lib/mno_enterprise/version.rb +1 -1
  135. data/lib/tasks/mno_enterprise_tasks.rake +3 -5
  136. data/spec/controllers/mno_enterprise/i18n_spec.rb +42 -0
  137. data/spec/lib/her_extension/model/relation_spec.rb +0 -71
  138. data/spec/lib/mno_enterprise/core_engine_spec.rb +16 -0
  139. data/spec/mno_enterprise_spec.rb +2 -2
  140. data/spec/models/mno_enterprise/base_resource_spec.rb +0 -22
  141. metadata +152 -18
  142. data/lib/her_extension/middleware/mnoe_raise_error.rb +0 -21
  143. data/lib/her_extension/model/associations/belongs_to_association.rb +0 -25
  144. 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: 748a400cbedca5730ebe83903f295b1461174db1
4
- data.tar.gz: 45866c6a9f5ca4773d38b5ffeb2820bbc75c858d
3
+ metadata.gz: dfe546808d905e473abc105da4fbe5234f124896
4
+ data.tar.gz: 7e8dd015d9a5b54ee9ba1fce03695f7a67af9702
5
5
  SHA512:
6
- metadata.gz: 8c46b8cd5303418e5b5f38dc8fd42828308395221dacb39482c81034d788deb690d37a764f93c529bbfba85ab38a41e1ec5005329f0768c0ff98a08a61f059fb
7
- data.tar.gz: 6b3bc383d8335d22e52e62161ac597edf029363a03e7d6f5a3a141cbf73dd66f4d3be9297b91234dfeb073ee43ac238fd0a6f7dab3fd1ef526eb43fc50582f1a
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 = mno_enterprise.respond_to?(:myspace_url) ? mno_enterprise.myspace_url : main_app.root_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 myspace_path we check it here
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
- mno_enterprise.respond_to?(:myspace_path) ? mno_enterprise.myspace_path : main_app.root_path
110
+ MnoEnterprise.router.dashboard_path || main_app.root_path
105
111
  end
106
112
 
107
113
  def mnoe_home_url
108
- mno_enterprise.respond_to?(:myspace_url) ? mno_enterprise.myspace_url : main_app.root_url
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
@@ -142,8 +142,7 @@ module MnoEnterprise
142
142
  if perform_validations(options)
143
143
  ret = super()
144
144
  process_response_errors
145
- raise_record_invalid if self.errors.any?
146
- ret
145
+ raise_record_invalid
147
146
  else
148
147
  false
149
148
  end
@@ -3,29 +3,31 @@ module MnoEnterprise
3
3
 
4
4
  attributes :name, :widgets_order, :organization_ids, :widgets_templates, :currency
5
5
 
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
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
- # 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
- 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
 
@@ -1,7 +1,7 @@
1
1
  module MnoEnterprise
2
2
  class Impac::Widget < BaseResource
3
3
 
4
- attributes :name, :width, :widget_category, :settings
4
+ attributes :name, :width, :widget_category, :settings
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, :admin_role
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?
@@ -1,3 +1,5 @@
1
+ # Somehow the whole config/ folder is loaded twice
2
+ # To investigate
1
3
  unless defined? AUDIT_LOG_CONFIG
2
4
  AUDIT_LOG_CONFIG = Rails.application.config_for('audit_log') rescue {}
3
5
  end
@@ -0,0 +1,3 @@
1
+ Config.setup do |config|
2
+ config.const_name = "Settings"
3
+ end
@@ -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: "年"
@@ -0,0 +1,9 @@
1
+ en:
2
+ activemodel:
3
+ models:
4
+ mno_enterprise/deletion_request: Deletion request
5
+ attributes:
6
+ mno_enterprise/deletion_request:
7
+ created_at: Created at
8
+ id: Id
9
+ updated_at: Updated at
@@ -0,0 +1,9 @@
1
+ id:
2
+ activemodel:
3
+ models:
4
+ mno_enterprise/deletion_request: Permintaan penghapusan
5
+ attributes:
6
+ mno_enterprise/deletion_request:
7
+ created_at: Dibuat pada
8
+ id: Id
9
+ updated_at: Diperbarui pada
@@ -0,0 +1,9 @@
1
+ zh:
2
+ activemodel:
3
+ models:
4
+ mno_enterprise/deletion_request: "删除要求"
5
+ attributes:
6
+ mno_enterprise/deletion_request:
7
+ created_at: "创建于"
8
+ id: Id
9
+ updated_at: "更新于"