summaryrefslogtreecommitdiff
path: root/app/assets
diff options
context:
space:
mode:
authorClement Ho <ClemMakesApps@gmail.com>2018-01-11 12:41:48 -0600
committerClement Ho <ClemMakesApps@gmail.com>2018-01-11 12:41:48 -0600
commit8a49e97bebb57eb763533b32e968547f37fa659e (patch)
tree0475f802be1875bcfb25f664d9448e26ccf05e5a /app/assets
parentf716049998ec41d8f26caedd65ebd1a247179926 (diff)
parent685780d5b4606dce440ba8121e774fd6e7884ea2 (diff)
downloadgitlab-ce-8a49e97bebb57eb763533b32e968547f37fa659e.tar.gz
Merge branch 'master' into projects-l
Diffstat (limited to 'app/assets')
-rw-r--r--app/assets/javascripts/dispatcher.js51
-rw-r--r--app/assets/javascripts/pages/help/index.js3
-rw-r--r--app/assets/javascripts/pages/profiles/index/index.js7
-rw-r--r--app/assets/javascripts/pages/profiles/personal_access_tokens/index.js3
-rw-r--r--app/assets/javascripts/pages/projects/pipelines/builds/index.js16
-rw-r--r--app/assets/javascripts/pages/projects/pipelines/new/index.js5
-rw-r--r--app/assets/javascripts/pages/projects/project_members/index.js12
-rw-r--r--app/assets/javascripts/vue_shared/components/clipboard_button.vue19
8 files changed, 84 insertions, 32 deletions
diff --git a/app/assets/javascripts/dispatcher.js b/app/assets/javascripts/dispatcher.js
index e8ec6daf687..1961762acdc 100644
--- a/app/assets/javascripts/dispatcher.js
+++ b/app/assets/javascripts/dispatcher.js
@@ -12,7 +12,6 @@ import notificationsDropdown from './notifications_dropdown';
import groupAvatar from './group_avatar';
import GroupLabelSubscription from './group_label_subscription';
import LineHighlighter from './line_highlighter';
-import groupsSelect from './groups_select';
import NewCommitForm from './new_commit_form';
import Project from './project';
import projectAvatar from './project_avatar';
@@ -40,7 +39,6 @@ import BlobLinePermalinkUpdater from './blob/blob_line_permalink_updater';
import BlobForkSuggestion from './blob/blob_fork_suggestion';
import UserCallout from './user_callout';
import ShortcutsWiki from './shortcuts_wiki';
-import Pipelines from './pipelines';
import BlobViewer from './blob/viewer/index';
import AutoWidthDropdownSelect from './issuable/auto_width_dropdown_select';
import UsersSelect from './users_select';
@@ -49,11 +47,9 @@ import GfmAutoComplete from './gfm_auto_complete';
import ShortcutsBlob from './shortcuts_blob';
import Star from './star';
import TreeView from './tree';
-import VersionCheckImage from './version_check_image';
import Wikis from './wikis';
import ZenMode from './zen_mode';
import initSettingsPanels from './settings_panels';
-import initExperimentalFlags from './experimental_flags';
import PerformanceBar from './performance_bar';
import initNotes from './init_notes';
import initLegacyFilters from './init_legacy_filters';
@@ -145,9 +141,6 @@ import Activities from './activities';
const filteredSearchEnabled = gl.FilteredSearchManager && document.querySelector('.filtered-search');
switch (page) {
- case 'profiles:preferences:show':
- initExperimentalFlags();
- break;
case 'sessions:new':
import('./pages/sessions/new')
.then(callDefault)
@@ -390,23 +383,16 @@ import Activities from './activities';
break;
case 'projects:pipelines:new':
case 'projects:pipelines:create':
- new NewBranchForm($('.js-new-pipeline-form'));
+ import('./pages/projects/pipelines/new')
+ .then(callDefault)
+ .catch(fail);
break;
case 'projects:pipelines:builds':
case 'projects:pipelines:failures':
case 'projects:pipelines:show':
- const { controllerAction } = document.querySelector('.js-pipeline-container').dataset;
- const pipelineStatusUrl = `${document.querySelector('.js-pipeline-tab-link a').getAttribute('href')}/status.json`;
-
- new Pipelines({
- initTabs: true,
- pipelineStatusUrl,
- tabsOptions: {
- action: controllerAction,
- defaultAction: 'pipelines',
- parentEl: '.pipelines-tabs',
- },
- });
+ import('./pages/projects/pipelines/builds')
+ .then(callDefault)
+ .catch(fail);
break;
case 'groups:activity':
new Activities();
@@ -428,11 +414,9 @@ import Activities from './activities';
new UsersSelect();
break;
case 'projects:project_members:index':
- memberExpirationDate('.js-access-expiration-date-groups');
- groupsSelect();
- memberExpirationDate();
- new Members();
- new UsersSelect();
+ import('./pages/projects/project_members/')
+ .then(callDefault)
+ .catch(fail);
break;
case 'groups:new':
case 'groups:create':
@@ -536,7 +520,9 @@ import Activities from './activities';
shortcut_handler = true;
break;
case 'help:index':
- VersionCheckImage.bindErrorEvent($('img.js-version-status-badge'));
+ import('./pages/help')
+ .then(callDefault)
+ .catch(fail);
break;
case 'search:show':
import('./pages/search/show')
@@ -579,14 +565,16 @@ import Activities from './activities';
case 'import:fogbugz:new_user_map':
import('./pages/import/fogbugz/new_user_map').then(m => m.default()).catch(fail);
break;
+ case 'profiles:personal_access_tokens:index':
+ import('./pages/profiles/personal_access_tokens')
+ .then(callDefault)
+ .catch(fail);
+ break;
case 'admin:impersonation_tokens:index':
import('./pages/admin/impersonation_tokens')
.then(callDefault)
.catch(fail);
break;
- case 'profiles:personal_access_tokens:index':
- new DueDateSelectors();
- break;
case 'projects:clusters:show':
import(/* webpackChunkName: "clusters" */ './clusters/clusters_bundle')
.then(cluster => new cluster.default()) // eslint-disable-line new-cap
@@ -672,8 +660,9 @@ import Activities from './activities';
new UserCallout();
break;
case 'profiles':
- new NotificationsForm();
- notificationsDropdown();
+ import('./pages/profiles/index/')
+ .then(callDefault)
+ .catch(fail);
break;
case 'projects':
new Project();
diff --git a/app/assets/javascripts/pages/help/index.js b/app/assets/javascripts/pages/help/index.js
new file mode 100644
index 00000000000..4cf8afc4b7e
--- /dev/null
+++ b/app/assets/javascripts/pages/help/index.js
@@ -0,0 +1,3 @@
+import VersionCheckImage from '../../version_check_image';
+
+export default () => VersionCheckImage.bindErrorEvent($('img.js-version-status-badge'));
diff --git a/app/assets/javascripts/pages/profiles/index/index.js b/app/assets/javascripts/pages/profiles/index/index.js
new file mode 100644
index 00000000000..90eed38777a
--- /dev/null
+++ b/app/assets/javascripts/pages/profiles/index/index.js
@@ -0,0 +1,7 @@
+import NotificationsForm from '../../../notifications_form';
+import notificationsDropdown from '../../../notifications_dropdown';
+
+export default () => {
+ new NotificationsForm(); // eslint-disable-line no-new
+ notificationsDropdown();
+};
diff --git a/app/assets/javascripts/pages/profiles/personal_access_tokens/index.js b/app/assets/javascripts/pages/profiles/personal_access_tokens/index.js
new file mode 100644
index 00000000000..030328a1363
--- /dev/null
+++ b/app/assets/javascripts/pages/profiles/personal_access_tokens/index.js
@@ -0,0 +1,3 @@
+import DueDateSelectors from '../../../due_date_select';
+
+export default () => new DueDateSelectors();
diff --git a/app/assets/javascripts/pages/projects/pipelines/builds/index.js b/app/assets/javascripts/pages/projects/pipelines/builds/index.js
new file mode 100644
index 00000000000..060a78b427e
--- /dev/null
+++ b/app/assets/javascripts/pages/projects/pipelines/builds/index.js
@@ -0,0 +1,16 @@
+import Pipelines from '../../../../pipelines';
+
+export default () => {
+ const { controllerAction } = document.querySelector('.js-pipeline-container').dataset;
+ const pipelineStatusUrl = `${document.querySelector('.js-pipeline-tab-link a').getAttribute('href')}/status.json`;
+
+ new Pipelines({ // eslint-disable-line no-new
+ initTabs: true,
+ pipelineStatusUrl,
+ tabsOptions: {
+ action: controllerAction,
+ defaultAction: 'pipelines',
+ parentEl: '.pipelines-tabs',
+ },
+ });
+};
diff --git a/app/assets/javascripts/pages/projects/pipelines/new/index.js b/app/assets/javascripts/pages/projects/pipelines/new/index.js
new file mode 100644
index 00000000000..c54cc62bf05
--- /dev/null
+++ b/app/assets/javascripts/pages/projects/pipelines/new/index.js
@@ -0,0 +1,5 @@
+import NewBranchForm from '../../../../new_branch_form';
+
+export default () => {
+ new NewBranchForm($('.js-new-pipeline-form')); // eslint-disable-line no-new
+};
diff --git a/app/assets/javascripts/pages/projects/project_members/index.js b/app/assets/javascripts/pages/projects/project_members/index.js
new file mode 100644
index 00000000000..f4643e7dba0
--- /dev/null
+++ b/app/assets/javascripts/pages/projects/project_members/index.js
@@ -0,0 +1,12 @@
+import memberExpirationDate from '../../../member_expiration_date';
+import UsersSelect from '../../../users_select';
+import groupsSelect from '../../../groups_select';
+import Members from '../../../members';
+
+export default () => {
+ memberExpirationDate('.js-access-expiration-date-groups');
+ groupsSelect();
+ memberExpirationDate();
+ new Members(); // eslint-disable-line no-new
+ new UsersSelect(); // eslint-disable-line no-new
+};
diff --git a/app/assets/javascripts/vue_shared/components/clipboard_button.vue b/app/assets/javascripts/vue_shared/components/clipboard_button.vue
index e18852af6e9..31d9b9d9c48 100644
--- a/app/assets/javascripts/vue_shared/components/clipboard_button.vue
+++ b/app/assets/javascripts/vue_shared/components/clipboard_button.vue
@@ -1,10 +1,14 @@
<script>
+ import tooltip from '../directives/tooltip';
/**
* Falls back to the code used in `copy_to_clipboard.js`
*/
export default {
name: 'ClipboardButton',
+ directives: {
+ tooltip,
+ },
props: {
text: {
type: String,
@@ -14,6 +18,16 @@
type: String,
required: true,
},
+ tooltipPlacement: {
+ type: String,
+ required: false,
+ default: 'top',
+ },
+ tooltipContainer: {
+ type: [String, Boolean],
+ required: false,
+ default: false,
+ },
},
};
</script>
@@ -22,8 +36,11 @@
<button
type="button"
class="btn btn-transparent btn-clipboard"
- :data-title="title"
+ :title="title"
:data-clipboard-text="text"
+ v-tooltip
+ :data-container="tooltipContainer"
+ :data-placement="tooltipPlacement"
>
<i
aria-hidden="true"