mno-enterprise-core 2.0.9 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: "更新于"