BigW Consortium Gitlab
Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
gitlab-ce
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Forest Godfrey
gitlab-ce
Commits
126e7301
Commit
126e7301
authored
Nov 14, 2017
by
Phil Hughes
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch '38869-project' into 'master'
Export project, projectAvatar and projectImport as ES6 modules See merge request gitlab-org/gitlab-ce!15355
parents
701577f0
86cc493d
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
142 additions
and
164 deletions
+142
-164
dispatcher.js
app/assets/javascripts/dispatcher.js
+5
-5
main.js
app/assets/javascripts/main.js
+0
-2
project.js
app/assets/javascripts/project.js
+119
-127
project_avatar.js
app/assets/javascripts/project_avatar.js
+12
-19
project_import.js
app/assets/javascripts/project_import.js
+6
-11
No files found.
app/assets/javascripts/dispatcher.js
View file @
126e7301
...
@@ -20,15 +20,15 @@ import groupsSelect from './groups_select';
...
@@ -20,15 +20,15 @@ import groupsSelect from './groups_select';
import
NamespaceSelect
from
'./namespace_select'
;
import
NamespaceSelect
from
'./namespace_select'
;
/* global NewCommitForm */
/* global NewCommitForm */
/* global NewBranchForm */
/* global NewBranchForm */
/* global Project */
import
Project
from
'./project'
;
/* global ProjectAvatar */
import
projectAvatar
from
'./project_avatar'
;
/* global MergeRequest */
/* global MergeRequest */
/* global Compare */
/* global Compare */
/* global CompareAutocomplete */
/* global CompareAutocomplete */
/* global ProjectFindFile */
/* global ProjectFindFile */
/* global ProjectNew */
/* global ProjectNew */
/* global ProjectShow */
/* global ProjectShow */
/* global ProjectImport */
import
projectImport
from
'./project_import'
;
import
Labels
from
'./labels'
;
import
Labels
from
'./labels'
;
import
LabelManager
from
'./label_manager'
;
import
LabelManager
from
'./label_manager'
;
/* global Sidebar */
/* global Sidebar */
...
@@ -378,7 +378,7 @@ import Diff from './diff';
...
@@ -378,7 +378,7 @@ import Diff from './diff';
initSettingsPanels
();
initSettingsPanels
();
break
;
break
;
case
'projects:imports:show'
:
case
'projects:imports:show'
:
new
P
rojectImport
();
p
rojectImport
();
break
;
break
;
case
'projects:pipelines:new'
:
case
'projects:pipelines:new'
:
new
NewBranchForm
(
$
(
'.js-new-pipeline-form'
));
new
NewBranchForm
(
$
(
'.js-new-pipeline-form'
));
...
@@ -604,7 +604,7 @@ import Diff from './diff';
...
@@ -604,7 +604,7 @@ import Diff from './diff';
break
;
break
;
case
'projects'
:
case
'projects'
:
new
Project
();
new
Project
();
new
P
rojectAvatar
();
p
rojectAvatar
();
switch
(
path
[
1
])
{
switch
(
path
[
1
])
{
case
'compare'
:
case
'compare'
:
new
CompareAutocomplete
();
new
CompareAutocomplete
();
...
...
app/assets/javascripts/main.js
View file @
126e7301
...
@@ -69,8 +69,6 @@ import './notifications_dropdown';
...
@@ -69,8 +69,6 @@ import './notifications_dropdown';
import
'./notifications_form'
;
import
'./notifications_form'
;
import
'./pager'
;
import
'./pager'
;
import
'./preview_markdown'
;
import
'./preview_markdown'
;
import
'./project'
;
import
'./project_avatar'
;
import
'./project_find_file'
;
import
'./project_find_file'
;
import
'./project_import'
;
import
'./project_import'
;
import
'./project_label_subscription'
;
import
'./project_label_subscription'
;
...
...
app/assets/javascripts/project.js
View file @
126e7301
/* eslint-disable func-names, space-before-function-paren,
wrap-iife, no-var, quotes, consistent-return, no-new, prefer-arrow-callback, no-return-assign, one-var, one-var-declaration-per-line, object-shorthand, comma-dangle
, no-else-return, newline-per-chained-call, no-shadow, vars-on-top, prefer-template, max-len */
/* eslint-disable func-names, space-before-function-paren,
no-var, consistent-return, no-new, prefer-arrow-callback, no-return-assign, one-var, one-var-declaration-per-line, object-shorthand
, no-else-return, newline-per-chained-call, no-shadow, vars-on-top, prefer-template, max-len */
/* global ProjectSelect */
/* global ProjectSelect */
import
Cookies
from
'js-cookie'
;
import
Cookies
from
'js-cookie'
;
(
function
()
{
export
default
class
Project
{
this
.
Project
=
(
function
()
{
constructor
()
{
function
Project
()
{
const
$cloneOptions
=
$
(
'ul.clone-options-dropdown'
);
const
$cloneOptions
=
$
(
'ul.clone-options-dropdown'
);
const
$projectCloneField
=
$
(
'#project_clone'
);
const
$projectCloneField
=
$
(
'#project_clone'
);
const
$cloneBtnText
=
$
(
'a.clone-dropdown-btn span'
);
const
$cloneBtnText
=
$
(
'a.clone-dropdown-btn span'
);
const
selectedCloneOption
=
$cloneBtnText
.
text
().
trim
();
const
selectedCloneOption
=
$cloneBtnText
.
text
().
trim
();
if
(
selectedCloneOption
.
length
>
0
)
{
if
(
selectedCloneOption
.
length
>
0
)
{
$
(
`a:contains('
${
selectedCloneOption
}
')`
,
$cloneOptions
).
addClass
(
'is-active'
);
$
(
`a:contains('
${
selectedCloneOption
}
')`
,
$cloneOptions
).
addClass
(
'is-active'
);
}
$
(
'a'
,
$cloneOptions
).
on
(
'click'
,
(
e
)
=>
{
const
$this
=
$
(
e
.
currentTarget
);
const
url
=
$this
.
attr
(
'href'
);
e
.
preventDefault
();
$
(
'.is-active'
,
$cloneOptions
).
not
(
$this
).
removeClass
(
'is-active'
);
$this
.
toggleClass
(
'is-active'
);
$projectCloneField
.
val
(
url
);
$cloneBtnText
.
text
(
$this
.
text
());
return
$
(
'.clone'
).
text
(
url
);
});
// Ref switcher
this
.
initRefSwitcher
();
$
(
'.project-refs-select'
).
on
(
'change'
,
function
()
{
return
$
(
this
).
parents
(
'form'
).
submit
();
});
$
(
'.hide-no-ssh-message'
).
on
(
'click'
,
function
(
e
)
{
Cookies
.
set
(
'hide_no_ssh_message'
,
'false'
);
$
(
this
).
parents
(
'.no-ssh-key-message'
).
remove
();
return
e
.
preventDefault
();
});
$
(
'.hide-no-password-message'
).
on
(
'click'
,
function
(
e
)
{
Cookies
.
set
(
'hide_no_password_message'
,
'false'
);
$
(
this
).
parents
(
'.no-password-message'
).
remove
();
return
e
.
preventDefault
();
});
this
.
projectSelectDropdown
();
}
}
Project
.
prototype
.
projectSelectDropdown
=
function
()
{
$
(
'a'
,
$cloneOptions
).
on
(
'click'
,
(
e
)
=>
{
new
ProjectSelect
();
const
$this
=
$
(
e
.
currentTarget
);
$
(
'.project-item-select'
).
on
(
'click'
,
(
function
(
_this
)
{
const
url
=
$this
.
attr
(
'href'
);
return
function
(
e
)
{
return
_this
.
changeProject
(
$
(
e
.
currentTarget
).
val
());
e
.
preventDefault
();
};
})(
this
));
$
(
'.is-active'
,
$cloneOptions
).
not
(
$this
).
removeClass
(
'is-active'
);
};
$this
.
toggleClass
(
'is-active'
);
$projectCloneField
.
val
(
url
);
Project
.
prototype
.
changeProject
=
function
(
url
)
{
$cloneBtnText
.
text
(
$this
.
text
());
return
window
.
location
=
url
;
};
return
$
(
'.clone'
).
text
(
url
);
});
Project
.
prototype
.
initRefSwitcher
=
function
()
{
// Ref switcher
var
refListItem
=
document
.
createElement
(
'li'
);
Project
.
initRefSwitcher
();
var
refLink
=
document
.
createElement
(
'a'
);
$
(
'.project-refs-select'
).
on
(
'change'
,
function
()
{
return
$
(
this
).
parents
(
'form'
).
submit
();
refLink
.
href
=
'#'
;
});
$
(
'.hide-no-ssh-message'
).
on
(
'click'
,
function
(
e
)
{
return
$
(
'.js-project-refs-dropdown'
).
each
(
function
()
{
Cookies
.
set
(
'hide_no_ssh_message'
,
'false'
);
var
$dropdown
,
selected
;
$
(
this
).
parents
(
'.no-ssh-key-message'
).
remove
();
$dropdown
=
$
(
this
);
return
e
.
preventDefault
();
selected
=
$dropdown
.
data
(
'selected'
);
});
return
$dropdown
.
glDropdown
({
$
(
'.hide-no-password-message'
).
on
(
'click'
,
function
(
e
)
{
data
:
function
(
term
,
callback
)
{
Cookies
.
set
(
'hide_no_password_message'
,
'false'
);
return
$
.
ajax
({
$
(
this
).
parents
(
'.no-password-message'
).
remove
();
url
:
$dropdown
.
data
(
'refs-url'
),
return
e
.
preventDefault
();
data
:
{
});
ref
:
$dropdown
.
data
(
'ref'
),
Project
.
projectSelectDropdown
();
search
:
term
}
},
dataType
:
"json"
static
projectSelectDropdown
()
{
}).
done
(
function
(
refs
)
{
new
ProjectSelect
();
return
callback
(
refs
);
$
(
'.project-item-select'
).
on
(
'click'
,
e
=>
Project
.
changeProject
(
$
(
e
.
currentTarget
).
val
()));
});
}
},
selectable
:
true
,
static
changeProject
(
url
)
{
filterable
:
true
,
return
window
.
location
=
url
;
filterRemote
:
true
,
}
filterByText
:
true
,
inputFieldName
:
$dropdown
.
data
(
'input-field-name'
),
static
initRefSwitcher
()
{
fieldName
:
$dropdown
.
data
(
'field-name'
),
var
refListItem
=
document
.
createElement
(
'li'
);
renderRow
:
function
(
ref
)
{
var
refLink
=
document
.
createElement
(
'a'
);
var
li
=
refListItem
.
cloneNode
(
false
);
refLink
.
href
=
'#'
;
if
(
ref
.
header
!=
null
)
{
li
.
className
=
'dropdown-header'
;
return
$
(
'.js-project-refs-dropdown'
).
each
(
function
()
{
li
.
textContent
=
ref
.
header
;
var
$dropdown
,
selected
;
}
else
{
$dropdown
=
$
(
this
);
var
link
=
refLink
.
cloneNode
(
false
);
selected
=
$dropdown
.
data
(
'selected'
);
return
$dropdown
.
glDropdown
({
if
(
ref
===
selected
)
{
data
:
function
(
term
,
callback
)
{
link
.
className
=
'is-active'
;
return
$
.
ajax
({
}
url
:
$dropdown
.
data
(
'refs-url'
),
data
:
{
link
.
textContent
=
ref
;
ref
:
$dropdown
.
data
(
'ref'
),
link
.
dataset
.
ref
=
ref
;
search
:
term
,
},
li
.
appendChild
(
link
);
dataType
:
'json'
,
}).
done
(
function
(
refs
)
{
return
callback
(
refs
);
});
},
selectable
:
true
,
filterable
:
true
,
filterRemote
:
true
,
filterByText
:
true
,
inputFieldName
:
$dropdown
.
data
(
'input-field-name'
),
fieldName
:
$dropdown
.
data
(
'field-name'
),
renderRow
:
function
(
ref
)
{
var
li
=
refListItem
.
cloneNode
(
false
);
if
(
ref
.
header
!=
null
)
{
li
.
className
=
'dropdown-header'
;
li
.
textContent
=
ref
.
header
;
}
else
{
var
link
=
refLink
.
cloneNode
(
false
);
if
(
ref
===
selected
)
{
link
.
className
=
'is-active'
;
}
}
return
li
;
link
.
textContent
=
ref
;
},
link
.
dataset
.
ref
=
ref
;
id
:
function
(
obj
,
$el
)
{
return
$el
.
attr
(
'data-ref'
);
li
.
appendChild
(
link
);
},
}
toggleLabel
:
function
(
obj
,
$el
)
{
return
$el
.
text
().
trim
();
return
li
;
},
},
clicked
:
function
(
options
)
{
id
:
function
(
obj
,
$el
)
{
const
{
e
}
=
options
;
return
$el
.
attr
(
'data-ref'
);
e
.
preventDefault
();
},
if
(
$
(
'input[name="ref"]'
).
length
)
{
toggleLabel
:
function
(
obj
,
$el
)
{
var
$form
=
$dropdown
.
closest
(
'form'
);
return
$el
.
text
().
trim
();
},
var
$visit
=
$dropdown
.
data
(
'visit'
);
clicked
:
function
(
options
)
{
var
shouldVisit
=
$visit
?
true
:
$visit
;
const
{
e
}
=
options
;
var
action
=
$form
.
attr
(
'action'
);
e
.
preventDefault
();
var
divider
=
action
.
indexOf
(
'?'
)
===
-
1
?
'?'
:
'&'
;
if
(
$
(
'input[name="ref"]'
).
length
)
{
if
(
shouldVisit
)
{
var
$form
=
$dropdown
.
closest
(
'form'
);
gl
.
utils
.
visitUrl
(
`
${
action
}${
divider
}${
$form
.
serialize
()}
`
);
}
var
$visit
=
$dropdown
.
data
(
'visit'
);
var
shouldVisit
=
$visit
?
true
:
$visit
;
var
action
=
$form
.
attr
(
'action'
);
var
divider
=
action
.
indexOf
(
'?'
)
===
-
1
?
'?'
:
'&'
;
if
(
shouldVisit
)
{
gl
.
utils
.
visitUrl
(
`
${
action
}${
divider
}${
$form
.
serialize
()}
`
);
}
}
}
}
}
);
}
,
});
});
};
});
}
return
Project
;
}
})();
}).
call
(
window
);
app/assets/javascripts/project_avatar.js
View file @
126e7301
/* eslint-disable func-names, space-before-function-paren, wrap-iife, no-var, one-var, one-var-declaration-per-line, no-useless-escape, max-len */
export
default
function
projectAvatar
()
{
(
function
()
{
$
(
'.js-choose-project-avatar-button'
).
bind
(
'click'
,
function
onClickAvatar
()
{
this
.
ProjectAvatar
=
(
function
()
{
const
form
=
$
(
this
).
closest
(
'form'
);
function
ProjectAvatar
()
{
return
form
.
find
(
'.js-project-avatar-input'
).
click
();
$
(
'.js-choose-project-avatar-button'
).
bind
(
'click'
,
function
()
{
});
var
form
;
form
=
$
(
this
).
closest
(
'form'
);
return
form
.
find
(
'.js-project-avatar-input'
).
click
();
});
$
(
'.js-project-avatar-input'
).
bind
(
'change'
,
function
()
{
var
filename
,
form
;
form
=
$
(
this
).
closest
(
'form'
);
filename
=
$
(
this
).
val
().
replace
(
/^.*
[\\\/]
/
,
''
);
return
form
.
find
(
'.js-avatar-filename'
).
text
(
filename
);
});
}
return
ProjectAvatar
;
$
(
'.js-project-avatar-input'
).
bind
(
'change'
,
function
onClickAvatarInput
()
{
})();
const
form
=
$
(
this
).
closest
(
'form'
);
}).
call
(
window
);
// eslint-disable-next-line no-useless-escape
const
filename
=
$
(
this
).
val
().
replace
(
/^.*
[\\\/]
/
,
''
);
return
form
.
find
(
'.js-avatar-filename'
).
text
(
filename
);
});
}
app/assets/javascripts/project_import.js
View file @
126e7301
/* eslint-disable func-names, space-before-function-paren, wrap-iife, prefer-arrow-callback, max-len */
import
{
visitUrl
}
from
'./lib/utils/url_utility'
;
(
function
()
{
export
default
function
projectImport
()
{
this
.
ProjectImport
=
(
function
()
{
setTimeout
(()
=>
{
function
ProjectImport
()
{
visitUrl
(
location
.
href
);
setTimeout
(
function
()
{
},
5000
);
return
gl
.
utils
.
visitUrl
(
location
.
href
);
}
},
5000
);
}
return
ProjectImport
;
})();
}).
call
(
window
);
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment