From ca3d868c3731018e18c4b5931d5a37466a16fa6a Mon Sep 17 00:00:00 2001 From: Fatih Acet Date: Wed, 10 May 2017 23:05:25 +0300 Subject: MRWidget: Implement new design for nothing to commit state. --- .../states/mr_widget_nothing_to_merge.js | 51 +++++++++++++++++----- .../stores/mr_widget_store.js | 1 + app/assets/stylesheets/pages/merge_requests.scss | 14 ++++++ app/serializers/merge_request_entity.rb | 6 +++ app/views/shared/icons/_mr_widget_empty_state.svg | 1 + 5 files changed, 62 insertions(+), 11 deletions(-) create mode 100644 app/views/shared/icons/_mr_widget_empty_state.svg diff --git a/app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_nothing_to_merge.js b/app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_nothing_to_merge.js index 8c4535f1337..1d9c30389e5 100644 --- a/app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_nothing_to_merge.js +++ b/app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_nothing_to_merge.js @@ -1,17 +1,46 @@ +import emptyStateSVG from 'icons/_mr_widget_empty_state.svg'; + export default { name: 'MRWidgetNothingToMerge', + props: { + mr: { + type: Object, + default: false, + }, + }, + data() { + return { + canCreateNewFile: true, + emptyStateSVG, + }; + }, template: ` -
- - - There is nothing to merge from source branch into target branch. - Please push new commits or use a different branch. - +
+
+
+ +
+
+ + Merge requests are a place to propose changes you have made to a project + and discuss those changes with others. + +

+ Interested parties can even contribute by pushing commits if they want to. +

+

+ Currently there are no changes in this merge request's source branch. + Please push new commits or use a different branch. +

+ + Create file + +
+
`, }; diff --git a/app/assets/javascripts/vue_merge_request_widget/stores/mr_widget_store.js b/app/assets/javascripts/vue_merge_request_widget/stores/mr_widget_store.js index 05e67706983..06661b930e3 100644 --- a/app/assets/javascripts/vue_merge_request_widget/stores/mr_widget_store.js +++ b/app/assets/javascripts/vue_merge_request_widget/stores/mr_widget_store.js @@ -58,6 +58,7 @@ export default class MergeRequestStore { this.statusPath = data.status_path; this.emailPatchesPath = data.email_patches_path; this.plainDiffPath = data.plain_diff_path; + this.newBlobPath = data.new_blob_path; this.createIssueToResolveDiscussionsPath = data.create_issue_to_resolve_discussions_path; this.mergeCheckPath = data.merge_check_path; this.mergeActionsContentPath = data.commit_change_content_path; diff --git a/app/assets/stylesheets/pages/merge_requests.scss b/app/assets/stylesheets/pages/merge_requests.scss index d208e54207e..b66b43c6b43 100644 --- a/app/assets/stylesheets/pages/merge_requests.scss +++ b/app/assets/stylesheets/pages/merge_requests.scss @@ -349,6 +349,20 @@ margin-top: 10px; margin-left: 12px; } + + &.empty-state { + .artwork { + margin-bottom: $gl-padding; + } + .text { + span { + font-weight: bold; + } + p { + margin-top: $gl-padding; + } + } + } } .mr-widget-footer { diff --git a/app/serializers/merge_request_entity.rb b/app/serializers/merge_request_entity.rb index a2542c54f7a..d31057c030c 100644 --- a/app/serializers/merge_request_entity.rb +++ b/app/serializers/merge_request_entity.rb @@ -97,6 +97,12 @@ class MergeRequestEntity < IssuableEntity presenter(merge_request).target_branch_commits_path end + expose :new_blob_path do |merge_request| + namespace_project_new_blob_path(merge_request.project.namespace, + merge_request.project, + merge_request.source_branch) + end + expose :conflict_resolution_path do |merge_request| presenter(merge_request).conflict_resolution_path end diff --git a/app/views/shared/icons/_mr_widget_empty_state.svg b/app/views/shared/icons/_mr_widget_empty_state.svg new file mode 100644 index 00000000000..6a811893b2d --- /dev/null +++ b/app/views/shared/icons/_mr_widget_empty_state.svg @@ -0,0 +1 @@ +illustration -- cgit v1.2.1