diff --git a/app/frontend/js/components/Button.vue b/app/frontend/js/components/Button.vue
index f0a91b00d0..ece323b3cd 100644
--- a/app/frontend/js/components/Button.vue
+++ b/app/frontend/js/components/Button.vue
@@ -9,16 +9,15 @@
:href="realHref"
@click="$emit('click')"
>
-
+
-
+
diff --git a/app/frontend/js/views/ResourceShow.vue b/app/frontend/js/views/ResourceShow.vue
index ac88c86743..2dc5eb4300 100644
--- a/app/frontend/js/views/ResourceShow.vue
+++ b/app/frontend/js/views/ResourceShow.vue
@@ -1,5 +1,5 @@
-
+
@@ -75,6 +75,7 @@ import HasUpperFirstFilter from '@/js/mixins/has-upper-first-filter'
import LoadsActions from '@/js/mixins/loads-actions'
import LoadsResource from '@/js/mixins/loads-resource'
import Modal from '@/js/components/Modal.vue'
+import upperFirst from 'lodash/upperFirst'
export default {
name: 'ResourceShow',
@@ -107,10 +108,12 @@ export default {
return action
},
fields() {
+ if (!this.resource) return []
+
return this.resource.fields
},
panels() {
- if (!this.resource) return []
+ if (!this.resource) return [{ name: this.$t('avo.resource_details', { name: upperFirst(this.resourceNameFromURL) }) }]
return this.resource.panels
},
@@ -118,9 +121,13 @@ export default {
return this.fields.filter((field) => ['has_and_belongs_to_many', 'has_many'].indexOf(field.relationship) > -1)
},
canEdit() {
+ if (!this.resource) return false
+
return this.resource.authorization.edit
},
canDelete() {
+ if (!this.resource) return false
+
return this.resource.authorization.destroy
},
},
diff --git a/lib/avo/app/resource.rb b/lib/avo/app/resource.rb
index 282d51fea8..aeeb828529 100644
--- a/lib/avo/app/resource.rb
+++ b/lib/avo/app/resource.rb
@@ -13,7 +13,14 @@ class Resource
class << self
def hydrate_resource(model:, resource:, view: :index, user:)
- default_panel_name = I18n.t 'avo.resource_details', name: resource.name
+ case view
+ when :show
+ panel_name = I18n.t 'avo.resource_details', name: resource.name.downcase.upcase_first
+ when :edit
+ panel_name = I18n.t('avo.edit_item', item: resource.name.downcase).upcase_first
+ when :create
+ panel_name = I18n.t('avo.create_new_item', item: resource.name.downcase).upcase_first
+ end
resource_with_fields = {
id: model.id,
@@ -26,7 +33,7 @@ def hydrate_resource(model:, resource:, view: :index, user:)
fields: [],
grid_fields: {},
panels: [{
- name: default_panel_name,
+ name: panel_name,
component: 'panel',
}]
}
@@ -46,7 +53,7 @@ def hydrate_resource(model:, resource:, view: :index, user:)
next if furnished_field.blank?
- furnished_field[:panel_name] = default_panel_name
+ furnished_field[:panel_name] = panel_name
furnished_field[:show_on_show] = field.show_on_show
if field.has_own_panel?