Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-ce
Commits
423d31a3
Commit
423d31a3
authored
Aug 01, 2017
by
Tim Zallmann
Committed by
Phil Hughes
Aug 01, 2017
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Inline script cleanup globals and easy
parent
5000c4ff
Changes
28
Show whitespace changes
Inline
Side-by-side
Showing
28 changed files
with
290 additions
and
262 deletions
+290
-262
app/assets/javascripts/blob_edit/blob_bundle.js
app/assets/javascripts/blob_edit/blob_bundle.js
+5
-0
app/assets/javascripts/dispatcher.js
app/assets/javascripts/dispatcher.js
+29
-4
app/assets/javascripts/graphs/graphs_bundle.js
app/assets/javascripts/graphs/graphs_bundle.js
+0
-2
app/assets/javascripts/graphs/graphs_charts.js
app/assets/javascripts/graphs/graphs_charts.js
+63
-0
app/assets/javascripts/graphs/graphs_show.js
app/assets/javascripts/graphs/graphs_show.js
+21
-0
app/assets/javascripts/two_factor_auth.js
app/assets/javascripts/two_factor_auth.js
+13
-0
app/assets/javascripts/ui_development_kit.js
app/assets/javascripts/ui_development_kit.js
+22
-0
app/views/help/ui.html.haml
app/views/help/ui.html.haml
+2
-23
app/views/layouts/_google_analytics.html.haml
app/views/layouts/_google_analytics.html.haml
+1
-0
app/views/layouts/_init_auto_complete.html.haml
app/views/layouts/_init_auto_complete.html.haml
+1
-0
app/views/layouts/_piwik.html.haml
app/views/layouts/_piwik.html.haml
+1
-0
app/views/layouts/project.html.haml
app/views/layouts/project.html.haml
+1
-0
app/views/layouts/snippets.html.haml
app/views/layouts/snippets.html.haml
+1
-0
app/views/profiles/personal_access_tokens/index.html.haml
app/views/profiles/personal_access_tokens/index.html.haml
+2
-6
app/views/profiles/two_factor_auths/show.html.haml
app/views/profiles/two_factor_auths/show.html.haml
+79
-84
app/views/projects/_activity.html.haml
app/views/projects/_activity.html.haml
+0
-6
app/views/projects/blob/_new_dir.html.haml
app/views/projects/blob/_new_dir.html.haml
+0
-3
app/views/projects/blob/_remove.html.haml
app/views/projects/blob/_remove.html.haml
+0
-3
app/views/projects/branches/new.html.haml
app/views/projects/branches/new.html.haml
+1
-5
app/views/projects/commit/_commit_box.html.haml
app/views/projects/commit/_commit_box.html.haml
+1
-4
app/views/projects/commits/show.html.haml
app/views/projects/commits/show.html.haml
+25
-27
app/views/projects/find_file/show.html.haml
app/views/projects/find_file/show.html.haml
+1
-9
app/views/projects/graphs/charts.html.haml
app/views/projects/graphs/charts.html.haml
+10
-54
app/views/projects/graphs/show.html.haml
app/views/projects/graphs/show.html.haml
+4
-24
app/views/projects/imports/show.html.haml
app/views/projects/imports/show.html.haml
+0
-2
app/views/u2f/_register.html.haml
app/views/u2f/_register.html.haml
+0
-4
config/webpack.config.js
config/webpack.config.js
+5
-0
spec/features/commits_spec.rb
spec/features/commits_spec.rb
+2
-2
No files found.
app/assets/javascripts/blob_edit/blob_bundle.js
View file @
423d31a3
...
...
@@ -8,6 +8,7 @@ import BlobFileDropzone from '../blob/blob_file_dropzone';
$
(()
=>
{
const
editBlobForm
=
$
(
'
.js-edit-blob-form
'
);
const
uploadBlobForm
=
$
(
'
.js-upload-blob-form
'
);
const
deleteBlobForm
=
$
(
'
.js-delete-blob-form
'
);
if
(
editBlobForm
.
length
)
{
const
urlRoot
=
editBlobForm
.
data
(
'
relative-url-root
'
);
...
...
@@ -30,4 +31,8 @@ $(() => {
'
.btn-upload-file
'
,
);
}
if
(
deleteBlobForm
.
length
)
{
new
NewCommitForm
(
deleteBlobForm
);
}
});
app/assets/javascripts/dispatcher.js
View file @
423d31a3
...
...
@@ -8,6 +8,7 @@
/* global LabelsSelect */
/* global MilestoneSelect */
/* global Commit */
/* global CommitsList */
/* global NewBranchForm */
/* global NotificationsForm */
/* global NotificationsDropdown */
...
...
@@ -19,15 +20,20 @@
/* global Search */
/* global Admin */
/* global NamespaceSelects */
/* global NewCommitForm */
/* global NewBranchForm */
/* global Project */
/* global ProjectAvatar */
/* global MergeRequest */
/* global Compare */
/* global CompareAutocomplete */
/* global ProjectFindFile */
/* global ProjectNew */
/* global ProjectShow */
/* global ProjectImport */
/* global Labels */
/* global Shortcuts */
/* global ShortcutsFindFile */
/* global Sidebar */
/* global ShortcutsWiki */
...
...
@@ -195,7 +201,6 @@ import GpgBadges from './gpg_badges';
break
;
case
'
explore:groups:index
'
:
new
GroupsList
();
const
landingElement
=
document
.
querySelector
(
'
.js-explore-groups-landing
'
);
if
(
!
landingElement
)
break
;
const
exploreGroupsLanding
=
new
Landing
(
...
...
@@ -218,6 +223,10 @@ import GpgBadges from './gpg_badges';
case
'
projects:compare:show
'
:
new
gl
.
Diff
();
break
;
case
'
projects:branches:new
'
:
case
'
projects:branches:create
'
:
new
NewBranchForm
(
$
(
'
.js-create-branch-form
'
),
JSON
.
parse
(
document
.
getElementById
(
'
availableRefs
'
).
innerHTML
));
break
;
case
'
projects:branches:index
'
:
gl
.
AjaxLoadingSpinner
.
init
();
new
DeleteModal
();
...
...
@@ -305,18 +314,23 @@ import GpgBadges from './gpg_badges';
container
:
'
.js-commit-pipeline-graph
'
,
}).
bindEvents
();
initNotes
();
$
(
'
.commit-info.branches
'
).
load
(
document
.
querySelector
(
'
.js-commit-box
'
).
dataset
.
commitPath
);
break
;
case
'
projects:commit:pipelines
'
:
new
MiniPipelineGraph
({
container
:
'
.js-commit-pipeline-graph
'
,
}).
bindEvents
();
$
(
'
.commit-info.branches
'
).
load
(
document
.
querySelector
(
'
.js-commit-box
'
).
dataset
.
commitPath
);
break
;
case
'
projects:commits:show
'
:
case
'
projects:activity
'
:
new
gl
.
Activities
();
shortcut_handler
=
new
ShortcutsNavigation
();
GpgBadges
.
fetch
();
break
;
case
'
projects:activity
'
:
case
'
projects:commits:show
'
:
CommitsList
.
init
(
document
.
querySelector
(
'
.js-project-commits-show
'
).
dataset
.
commitsLimit
);
new
gl
.
Activities
();
shortcut_handler
=
new
ShortcutsNavigation
();
GpgBadges
.
fetch
();
break
;
case
'
projects:show
'
:
shortcut_handler
=
new
ShortcutsNavigation
();
...
...
@@ -331,6 +345,9 @@ import GpgBadges from './gpg_badges';
case
'
projects:edit
'
:
setupProjectEdit
();
break
;
case
'
projects:imports:show
'
:
new
ProjectImport
();
break
;
case
'
projects:pipelines:new
'
:
new
NewBranchForm
(
$
(
'
.js-new-pipeline-form
'
));
break
;
...
...
@@ -387,11 +404,19 @@ import GpgBadges from './gpg_badges';
shortcut_handler
=
new
ShortcutsNavigation
();
new
TreeView
();
new
BlobViewer
();
new
NewCommitForm
(
$
(
'
.js-create-dir-form
'
));
$
(
'
#tree-slider
'
).
waitForImages
(
function
()
{
gl
.
utils
.
ajaxGet
(
document
.
querySelector
(
'
.js-tree-content
'
).
dataset
.
logsPath
);
});
break
;
case
'
projects:find_file:show
'
:
const
findElement
=
document
.
querySelector
(
'
.js-file-finder
'
);
const
projectFindFile
=
new
ProjectFindFile
(
$
(
"
.file-finder-holder
"
),
{
url
:
findElement
.
dataset
.
fileFindUrl
,
treeUrl
:
findElement
.
dataset
.
findTreeUrl
,
blobUrlTemplate
:
findElement
.
dataset
.
blobUrlTemplate
,
});
new
ShortcutsFindFile
(
projectFindFile
);
shortcut_handler
=
true
;
break
;
case
'
projects:blob:show
'
:
...
...
app/assets/javascripts/graphs/graphs_bundle.js
View file @
423d31a3
import
Chart
from
'
vendor/Chart
'
;
import
ContributorsStatGraph
from
'
./stat_graph_contributors
'
;
// export to global scope
window
.
Chart
=
Chart
;
window
.
ContributorsStatGraph
=
ContributorsStatGraph
;
app/assets/javascripts/graphs/graphs_charts.js
0 → 100644
View file @
423d31a3
import
Chart
from
'
vendor/Chart
'
;
document
.
addEventListener
(
'
DOMContentLoaded
'
,
()
=>
{
const
projectChartData
=
JSON
.
parse
(
document
.
getElementById
(
'
projectChartData
'
).
innerHTML
);
const
responsiveChart
=
(
selector
,
data
)
=>
{
const
options
=
{
scaleOverlay
:
true
,
responsive
:
true
,
pointHitDetectionRadius
:
2
,
maintainAspectRatio
:
false
,
};
// get selector by context
const
ctx
=
selector
.
get
(
0
).
getContext
(
'
2d
'
);
// pointing parent container to make chart.js inherit its width
const
container
=
$
(
selector
).
parent
();
const
generateChart
=
()
=>
{
selector
.
attr
(
'
width
'
,
$
(
container
).
width
());
if
(
window
.
innerWidth
<
768
)
{
// Scale fonts if window width lower than 768px (iPad portrait)
options
.
scaleFontSize
=
8
;
}
return
new
Chart
(
ctx
).
Bar
(
data
,
options
);
};
// enabling auto-resizing
$
(
window
).
resize
(
generateChart
);
return
generateChart
();
};
const
chartData
=
(
keys
,
values
)
=>
{
const
data
=
{
labels
:
keys
,
datasets
:
[{
fillColor
:
'
rgba(220,220,220,0.5)
'
,
strokeColor
:
'
rgba(220,220,220,1)
'
,
barStrokeWidth
:
1
,
barValueSpacing
:
1
,
barDatasetSpacing
:
1
,
data
:
values
,
}],
};
return
data
;
};
const
hourData
=
chartData
(
projectChartData
.
hour
.
keys
,
projectChartData
.
hour
.
values
);
responsiveChart
(
$
(
'
#hour-chart
'
),
hourData
);
const
dayData
=
chartData
(
projectChartData
.
weekDays
.
keys
,
projectChartData
.
weekDays
.
values
);
responsiveChart
(
$
(
'
#weekday-chart
'
),
dayData
);
const
monthData
=
chartData
(
projectChartData
.
month
.
keys
,
projectChartData
.
month
.
values
);
responsiveChart
(
$
(
'
#month-chart
'
),
monthData
);
const
data
=
projectChartData
.
languages
;
const
ctx
=
$
(
'
#languages-chart
'
).
get
(
0
).
getContext
(
'
2d
'
);
const
options
=
{
scaleOverlay
:
true
,
responsive
:
true
,
maintainAspectRatio
:
false
,
};
new
Chart
(
ctx
).
Pie
(
data
,
options
);
});
app/assets/javascripts/graphs/graphs_show.js
0 → 100644
View file @
423d31a3
import
ContributorsStatGraph
from
'
./stat_graph_contributors
'
;
document
.
addEventListener
(
'
DOMContentLoaded
'
,
()
=>
{
$
.
ajax
({
type
:
'
GET
'
,
url
:
document
.
querySelector
(
'
.js-graphs-show
'
).
dataset
.
projectGraphPath
,
dataType
:
'
json
'
,
success
(
data
)
{
const
graph
=
new
ContributorsStatGraph
();
graph
.
init
(
data
);
$
(
'
#brush_change
'
).
change
(()
=>
{
graph
.
change_date_header
();
graph
.
redraw_authors
();
});
$
(
'
.stat-graph
'
).
fadeIn
();
$
(
'
.loading-graph
'
).
hide
();
},
});
});
app/assets/javascripts/two_factor_auth.js
0 → 100644
View file @
423d31a3
/* global U2FRegister */
document
.
addEventListener
(
'
DOMContentLoaded
'
,
()
=>
{
const
twoFactorNode
=
document
.
querySelector
(
'
.js-two-factor-auth
'
);
const
skippable
=
twoFactorNode
.
dataset
.
twoFactorSkippable
===
'
true
'
;
if
(
skippable
)
{
const
button
=
`<a class="btn btn-xs btn-warning pull-right" data-method="patch" href="
${
twoFactorNode
.
dataset
.
two_factor_skip_url
}
">Configure it later</a>`
;
const
flashAlert
=
document
.
querySelector
(
'
.flash-alert .container-fluid
'
);
if
(
flashAlert
)
flashAlert
.
insertAdjacentHTML
(
'
beforeend
'
,
button
);
}
const
u2fRegister
=
new
U2FRegister
(
$
(
'
#js-register-u2f
'
),
gon
.
u2f
);
u2fRegister
.
start
();
});
app/assets/javascripts/ui_development_kit.js
0 → 100644
View file @
423d31a3
import
Api
from
'
./api
'
;
document
.
addEventListener
(
'
DOMContentLoaded
'
,
()
=>
{
$
(
'
#js-project-dropdown
'
).
glDropdown
({
data
:
(
term
,
callback
)
=>
{
Api
.
projects
(
term
,
{
order_by
:
'
last_activity_at
'
,
},
(
data
)
=>
{
callback
(
data
);
});
},
text
:
project
=>
(
project
.
name_with_namespace
||
project
.
name
),
selectable
:
true
,
fieldName
:
'
author_id
'
,
filterable
:
true
,
search
:
{
fields
:
[
'
name_with_namespace
'
],
},
id
:
data
=>
data
.
id
,
isSelected
:
data
=>
(
data
.
id
===
2
),
});
});
app/views/help/ui.html.haml
View file @
423d31a3
-
page_title
"UI Development Kit"
,
"Help"
-
lorem
=
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed fermentum nisi sapien, non consequat lectus aliquam ultrices. Suspendisse sodales est euismod nunc condimentum, a consectetur diam ornare."
-
content_for
:page_specific_javascripts
do
=
webpack_bundle_tag
(
'ui_development_kit'
)
.gitlab-ui-dev-kit
%h1
GitLab UI development kit
...
...
@@ -407,29 +409,6 @@
.dropdown-content
.dropdown-loading
=
icon
(
'spinner spin'
)
:javascript
$
(
'
#js-project-dropdown
'
).
glDropdown
({
data
:
function
(
term
,
callback
)
{
Api
.
projects
(
term
,
{
order_by
:
'
last_activity_at
'
},
function
(
data
)
{
callback
(
data
);
});
},
text
:
function
(
project
)
{
return
project
.
name_with_namespace
||
project
.
name
;
},
selectable
:
true
,
fieldName
:
"
author_id
"
,
filterable
:
true
,
search
:
{
fields
:
[
'
name_with_namespace
'
]
},
id
:
function
(
data
)
{
return
data
.
id
;
},
isSelected
:
function
(
data
)
{
return
data
.
id
===
2
;
}
})
.example
%div
...
...
app/views/layouts/_google_analytics.html.haml
View file @
423d31a3
-# haml-lint:disable InlineJavaScript
:javascript
var
_gaq
=
_gaq
||
[];
_gaq
.
push
([
'
_setAccount
'
,
'
#{
extra_config
.
google_analytics_id
}
'
]);
...
...
app/views/layouts/_init_auto_complete.html.haml
View file @
423d31a3
...
...
@@ -2,6 +2,7 @@
-
noteable_type
=
@noteable
.
class
if
@noteable
.
present?
-
if
project
-# haml-lint:disable InlineJavaScript
:javascript
gl
.
GfmAutoComplete
=
gl
.
GfmAutoComplete
||
{};
gl
.
GfmAutoComplete
.
dataSources
=
{
...
...
app/views/layouts/_piwik.html.haml
View file @
423d31a3
<!-- Piwik -->
-# haml-lint:disable InlineJavaScript
:javascript
var
_paq
=
_paq
||
[];
_paq
.
push
([
'
trackPageView
'
]);
...
...
app/views/layouts/project.html.haml
View file @
423d31a3
...
...
@@ -10,6 +10,7 @@
-
content_for
:project_javascripts
do
-
project
=
@target_project
||
@project
-
if
current_user
-# haml-lint:disable InlineJavaScript
:javascript
window
.
uploads_path
=
"
#{
project_uploads_path
(
project
)
}
"
;
...
...
app/views/layouts/snippets.html.haml
View file @
423d31a3
...
...
@@ -2,6 +2,7 @@
-
content_for
:page_specific_javascripts
do
-
if
@snippet
&&
current_user
-# haml-lint:disable InlineJavaScript
:javascript
window
.
uploads_path
=
"
#{
upload_path
(
'personal_snippet'
,
id:
@snippet
.
id
)
}
"
;
...
...
app/views/profiles/personal_access_tokens/index.html.haml
View file @
423d31a3
-
page_title
"Personal Access Tokens"
-
@content_class
=
"limit-container-width"
unless
fluid_layout
=
render
'profiles/head'
.row.prepend-top-default
...
...
@@ -19,7 +20,7 @@
%h5
.prepend-top-0
Your New Personal Access Token
.form-group
=
text_field_tag
'created-personal-access-token'
,
flash
[
:personal_access_token
],
readonly:
true
,
class:
"form-control"
,
'aria-describedby'
=>
"created-personal-access-token-help-block"
=
text_field_tag
'created-personal-access-token'
,
flash
[
:personal_access_token
],
readonly:
true
,
class:
"form-control
js-select-on-focus
"
,
'aria-describedby'
=>
"created-personal-access-token-help-block"
=
clipboard_button
(
text:
flash
[
:personal_access_token
],
title:
"Copy personal access token to clipboard"
,
placement:
"left"
)
%span
#created-personal-access-token-help-block
.help-block.text-danger
Make sure you save it - you won't be able to access it again.
...
...
@@ -28,8 +29,3 @@
=
render
"shared/personal_access_tokens_form"
,
path:
profile_personal_access_tokens_path
,
impersonation:
false
,
token:
@personal_access_token
,
scopes:
@scopes
=
render
"shared/personal_access_tokens_table"
,
impersonation:
false
,
active_tokens:
@active_personal_access_tokens
,
inactive_tokens:
@inactive_personal_access_tokens
:javascript
$
(
"
#created-personal-access-token
"
).
click
(
function
()
{
this
.
select
();
});
app/views/profiles/two_factor_auths/show.html.haml
View file @
423d31a3
...
...
@@ -7,11 +7,13 @@
=
render
'profiles/head'
-
if
inject_u2f_api?
-
content_for
:page_specific_javascripts
do
-
content_for
:page_specific_javascripts
do
-
if
inject_u2f_api?
=
page_specific_javascript_bundle_tag
(
'u2f'
)
=
page_specific_javascript_bundle_tag
(
'two_factor_auth'
)
.row.prepend-top-default
.js-two-factor-auth
{
'data-two-factor-skippable'
=>
"#{two_factor_skippable?}"
,
'data-two_factor_skip_url'
=>
skip_profile_two_factor_auth_path
}
.row.prepend-top-default
.col-lg-4
%h4
.prepend-top-0
Register Two-Factor Authentication App
...
...
@@ -51,10 +53,9 @@
.prepend-top-default
=
submit_tag
'Register with two-factor app'
,
class:
'btn btn-success'
%hr
.row.prepend-top-default
%hr
.row.prepend-top-default
.col-lg-4
%h4
.prepend-top-0
Register Universal Two-Factor (U2F) Device
...
...
@@ -95,9 +96,3 @@
-
else
.settings-message.text-center
You don't have any U2F devices registered yet.
-
if
two_factor_skippable?
:javascript
var
button
=
"
<a class='btn btn-xs btn-warning pull-right' data-method='patch' href='
#{
skip_profile_two_factor_auth_path
}
'>Configure it later</a>
"
;
$
(
"
.flash-alert
"
).
append
(
button
);
app/views/projects/_activity.html.haml
View file @
423d31a3
...
...
@@ -8,9 +8,3 @@
.content_list.project-activity
{
:"data-href"
=>
activity_project_path
(
@project
)
}
=
spinner
:javascript
var
activity
=
new
gl
.
Activities
();
$
(
document
).
on
(
'
page:restore
'
,
function
(
event
)
{
activity
.
reloadActivities
()
})
app/views/projects/blob/_new_dir.html.haml
View file @
423d31a3
...
...
@@ -20,6 +20,3 @@
-
unless
can?
(
current_user
,
:push_code
,
@project
)
.inline.prepend-left-10
=
commit_in_fork_help
:javascript
new
NewCommitForm
(
$
(
'
.js-create-dir-form
'
))
app/views/projects/blob/_remove.html.haml
View file @
423d31a3
...
...
@@ -13,6 +13,3 @@
.col-sm-offset-2.col-sm-10
=
button_tag
'Delete file'
,
class:
'btn btn-remove btn-remove-file'
=
link_to
"Cancel"
,
'#'
,
class:
"btn btn-cancel"
,
"data-dismiss"
=>
"modal"
:javascript
new
NewCommitForm
(
$
(
'
.js-delete-blob-form
'
))
app/views/projects/branches/new.html.haml
View file @
423d31a3
...
...
@@ -28,8 +28,4 @@
.form-actions
=
button_tag
'Create branch'
,
class:
'btn btn-create'
,
tabindex:
3
=
link_to
'Cancel'
,
project_branches_path
(
@project
),
class:
'btn btn-cancel'
:javascript
var
availableRefs
=
#{
@project
.
repository
.
ref_names
.
to_json
}
;
new
NewBranchForm
(
$
(
'
.js-create-branch-form
'
),
availableRefs
)
%script
#availableRefs
{
type:
"application/json"
}=
@project
.
repository
.
ref_names
.
to_json
.
html_safe
app/views/projects/commit/_commit_box.html.haml
View file @
423d31a3
.page-content-header
.page-content-header
.js-commit-box
{
'data-commit-path'
=>
branches_project_commit_path
(
@project
,
@commit
.
id
)
}
.header-main-content
=
render
partial:
'signature'
,
object:
@commit
.
signature
%strong
...
...
@@ -79,6 +79,3 @@
=
render
'shared/mini_pipeline_graph'
,
pipeline:
last_pipeline
,
klass:
'js-commit-pipeline-graph'
in
=
time_interval_in_words
last_pipeline
.
duration
:javascript
$
(
"
.commit-info.branches
"
).
load
(
"
#{
branches_project_commit_path
(
@project
,
@commit
.
id
)
}
"
);
app/views/projects/commits/show.html.haml
View file @
423d31a3
...
...
@@ -11,7 +11,8 @@
=
content_for
:sub_nav
do
=
render
"head"
%div
{
class:
container_class
}
.js-project-commits-show
{
'data-commits-limit'
=>
@limit
}
%div
{
class:
container_class
}
.tree-holder
.nav-block
.tree-ref-container
...
...
@@ -39,6 +40,3 @@
%ol
#commits-list
.list-unstyled.content_list
=
render
'commits'
,
project:
@project
,
ref:
@ref
=
spinner
:javascript
CommitsList
.
init
(
#{
@limit
}
);
app/views/projects/find_file/show.html.haml
View file @
423d31a3
-
page_title
"Find File"
,
@ref
=
render
"projects/commits/head"
.file-finder-holder.tree-holder.clearfix
.file-finder-holder.tree-holder.clearfix
.js-file-finder
{
'data-file-find-url'
:
"#{escape_javascript(project_files_path(@project, @ref, @options.merge(format: :json)))}"
,
'data-find-tree-url'
:
escape_javascript
(
project_tree_path
(
@project
,
@ref
)),
'data-blob-url-template'
:
escape_javascript
(
project_blob_path
(
@project
,
@id
||
@commit
.
id
))
}
.nav-block
.tree-ref-holder
=
render
'shared/ref_switcher'
,
destination:
'find_file'
,
path:
@path
...
...
@@ -17,11 +17,3 @@
%table
.table.files-slider
{
class:
"table_#{@hex_path} tree-table table-striped"
}
%tbody
=
spinner
nil
,
true
:javascript
var
projectFindFile
=
new
ProjectFindFile
(
$
(
"
.file-finder-holder
"
),
{
url
:
"
#{
escape_javascript
(
project_files_path
(
@project
,
@ref
,
@options
.
merge
(
format: :json
)))
}
"
,
treeUrl
:
"
#{
escape_javascript
(
project_tree_path
(
@project
,
@ref
))
}
"
,
blobUrlTemplate
:
"
#{
escape_javascript
(
project_blob_path
(
@project
,
@id
||
@commit
.
id
))
}
"
});
new
ShortcutsFindFile
(
projectFindFile
);
app/views/projects/graphs/charts.html.haml
View file @
423d31a3
...
...
@@ -3,8 +3,9 @@
-
if
show_new_nav?
-
add_to_breadcrumbs
(
"Repository"
,
project_tree_path
(
@project
))
-
content_for
:page_specific_javascripts
do
=
page_specific_javascript_bundle_tag
(
'common_d3'
)
=
page_specific_javascript_bundle_tag
(
'graphs'
)
=
webpack_bundle_tag
(
'common_d3'
)
=
webpack_bundle_tag
(
'graphs'
)
=
webpack_bundle_tag
(
'graphs_charts'
)
=
render
"projects/commits/head"
.repo-charts
{
class:
container_class
}
...
...
@@ -75,55 +76,10 @@
Commits per day hour (UTC)
%canvas
#hour-chart
:javascript
var
responsiveChart
=
function
(
selector
,
data
)
{
var
options
=
{
"
scaleOverlay
"
:
true
,
responsive
:
true
,
pointHitDetectionRadius
:
2
,
maintainAspectRatio
:
false
};
// get selector by context
var
ctx
=
selector
.
get
(
0
).
getContext
(
"
2d
"
);
// pointing parent container to make chart.js inherit its width
var
container
=
$
(
selector
).
parent
();
var
generateChart
=
function
()
{
selector
.
attr
(
'
width
'
,
$
(
container
).
width
());
if
(
window
.
innerWidth
<
768
)
{
// Scale fonts if window width lower than 768px (iPad portrait)
options
.
scaleFontSize
=
8
}
return
new
Chart
(
ctx
).
Bar
(
data
,
options
);
};
// enabling auto-resizing
$
(
window
).
resize
(
generateChart
);
return
generateChart
();
};
var
chartData
=
function
(
keys
,
values
)
{
var
data
=
{
labels
:
keys
,
datasets
:
[{
fillColor
:
"
rgba(220,220,220,0.5)
"
,
strokeColor
:
"
rgba(220,220,220,1)
"
,
barStrokeWidth
:
1
,
barValueSpacing
:
1
,
barDatasetSpacing
:
1
,
data
:
values
}]
};
return
data
;
};
var
hourData
=
chartData
(
#{
@commits_per_time
.
keys
.
to_json
}
,
#{
@commits_per_time
.
values
.
to_json
}
);
responsiveChart
(
$
(
'
#hour-chart
'
),
hourData
);
var
dayData
=
chartData
(
#{
@commits_per_week_days
.
keys
.
to_json
}
,
#{
@commits_per_week_days
.
values
.
to_json
}
);
responsiveChart
(
$
(
'
#weekday-chart
'
),
dayData
);
var
monthData
=
chartData
(
#{
@commits_per_month
.
keys
.
to_json
}
,
#{
@commits_per_month
.
values
.
to_json
}
);
responsiveChart
(
$
(
'
#month-chart
'
),
monthData
);
var
data
=
#{
@languages
.
to_json
}
;
var
ctx
=
$
(
"
#languages-chart
"
).
get
(
0
).
getContext
(
"
2d
"
);
var
options
=
{
scaleOverlay
:
true
,
responsive
:
true
,
maintainAspectRatio
:
false
}
var
myPieChart
=
new
Chart
(
ctx
).
Pie
(
data
,
options
);
%script
#projectChartData
{
type:
"application/json"
}
-
projectChartData
=
{};
-
projectChartData
[
'hour'
]
=
{
'keys'
=>
@commits_per_time
.
keys
,
'values'
=>
@commits_per_time
.
values
}
-
projectChartData
[
'weekDays'
]
=
{
'keys'
=>
@commits_per_week_days
.
keys
,
'values'
=>
@commits_per_week_days
.
values
}
-
projectChartData
[
'month'
]
=
{
'keys'
=>
@commits_per_month
.
keys
,
'values'
=>
@commits_per_month
.
values
}
-
projectChartData
[
'languages'
]
=
@languages
=
projectChartData
.
to_json
.
html_safe
app/views/projects/graphs/show.html.haml
View file @
423d31a3
-
@no_container
=
true
-
page_title
"Contributors"
-
content_for
:page_specific_javascripts
do
=
page_specific_javascript_bundle_tag
(
'common_d3'
)
=
page_specific_javascript_bundle_tag
(
'graphs'
)
=
webpack_bundle_tag
(
'common_d3'
)
=
webpack_bundle_tag
(
'graphs'
)
=
webpack_bundle_tag
(
'graphs_show'
)
-
if
show_new_nav?
-
add_to_breadcrumbs
(
"Repository"
,
project_tree_path
(
@project
))
=
render
'projects/commits/head'
%div
{
class:
container_class
}
.js-graphs-show
{
class:
container_class
,
'data-project-graph-path'
:
project_graph_path
(
@project
,
current_ref
,
format: :json
)
}
.sub-header-block
.tree-ref-holder
=
render
'shared/ref_switcher'
,
destination:
'graphs'
...
...
@@ -33,24 +34,3 @@
#contributors-master
#contributors
.clearfix
%ol
.contributors-list.clearfix
:javascript
$
.
ajax
({
type
:
"
GET
"
,
url
:
"
#{
project_graph_path
(
@project
,
current_ref
,
format: :json
)
}
"
,
dataType
:
"
json
"
,
success
:
function
(
data
)
{
var
graph
=
new
ContributorsStatGraph
();
graph
.
init
(
data
);
$
(
"
#brush_change
"
).
change
(
function
(){
graph
.
change_date_header
();
graph
.
redraw_authors
();
});
$
(
"
.stat-graph
"
).
fadeIn
();
$
(
"
.loading-graph
"
).
hide
();
}
});
app/views/projects/imports/show.html.haml
View file @
423d31a3
...
...
@@ -10,5 +10,3 @@
-
if
@project
.
external_import?
%p
.monospace
git clone --bare
#{
@project
.
safe_import_url
}
%p
Please wait while we import the repository for you. Refresh at will.
:javascript
new
ProjectImport
();
app/views/u2f/_register.html.haml
View file @
423d31a3
...
...
@@ -37,7 +37,3 @@
.col-md-3
=
hidden_field_tag
'u2f_registration[device_response]'
,
nil
,
class:
'form-control'
,
required:
true
,
id:
"js-device-response"
=
submit_tag
"Register U2F device"
,
class:
"btn btn-success"
:javascript
var
u2fRegister
=
new
U2FRegister
(
$
(
"
#js-register-u2f
"
),
gon
.
u2f
);
u2fRegister
.
start
();
config/webpack.config.js
View file @
423d31a3
...
...
@@ -39,6 +39,8 @@ var config = {
environments_folder
:
'
./environments/folder/environments_folder_bundle.js
'
,
filtered_search
:
'
./filtered_search/filtered_search_bundle.js
'
,
graphs
:
'
./graphs/graphs_bundle.js
'
,
graphs_charts
:
'
./graphs/graphs_charts.js
'
,
graphs_show
:
'
./graphs/graphs_show.js
'
,
group
:
'
./group.js
'
,
groups
:
'
./groups/index.js
'
,
groups_list
:
'
./groups_list.js
'
,
...
...
@@ -70,9 +72,12 @@ var config = {
stl_viewer
:
'
./blob/stl_viewer.js
'
,
terminal
:
'
./terminal/terminal_bundle.js
'
,
u2f
:
[
'
vendor/u2f
'
],
ui_development_kit
:
'
./ui_development_kit.js
'
,
users
:
'
./users/index.js
'
,
raven
:
'
./raven/index.js
'
,
vue_merge_request_widget
:
'
./vue_merge_request_widget/index.js
'
,
test
:
'
./test.js
'
,
two_factor_auth
:
'
./two_factor_auth.js
'
,
performance_bar
:
'
./performance_bar.js
'
,
webpack_runtime
:
'
./webpack.js
'
,
},
...
...
spec/features/commits_spec.rb
View file @
423d31a3
...
...
@@ -282,7 +282,7 @@ describe 'Commits' do
end
# verified and the gpg user has a gitlab profile
click_on
'Verified'
click_on
'Verified'
,
match: :first
within
'.popover'
do
expect
(
page
).
to
have_content
'This commit was signed with a verified signature.'
expect
(
page
).
to
have_content
'Nannie Bernhard'
...
...
@@ -295,7 +295,7 @@ describe 'Commits' do
visit
project_commits_path
(
project
,
:'signed-commits'
)
click_on
'Verified'
click_on
'Verified'
,
match: :first
within
'.popover'
do
expect
(
page
).
to
have_content
'This commit was signed with a verified signature.'
expect
(
page
).
to
have_content
'Nannie Bernhard'
...
...
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