Merge branch 'inline-js-removal-projects-other' into 'master'
Inline js removal projects other See merge request !13075
This commit is contained in:
commit
1782aa7081
13 changed files with 140 additions and 113 deletions
|
@ -8,6 +8,7 @@
|
|||
/* global LabelsSelect */
|
||||
/* global MilestoneSelect */
|
||||
/* global Commit */
|
||||
/* global NewBranchForm */
|
||||
/* global NotificationsForm */
|
||||
/* global NotificationsDropdown */
|
||||
/* global GroupAvatar */
|
||||
|
@ -258,7 +259,7 @@ import GpgBadges from './gpg_badges';
|
|||
case 'projects:tags:new':
|
||||
new ZenMode();
|
||||
new gl.GLForm($('.tag-form'), true);
|
||||
new RefSelectDropdown($('.js-branch-select'), window.gl.availableRefs);
|
||||
new RefSelectDropdown($('.js-branch-select'));
|
||||
break;
|
||||
case 'projects:snippets:show':
|
||||
initNotes();
|
||||
|
@ -330,6 +331,9 @@ import GpgBadges from './gpg_badges';
|
|||
case 'projects:edit':
|
||||
setupProjectEdit();
|
||||
break;
|
||||
case 'projects:pipelines:new':
|
||||
new NewBranchForm($('.js-new-pipeline-form'));
|
||||
break;
|
||||
case 'projects:pipelines:builds':
|
||||
case 'projects:pipelines:failures':
|
||||
case 'projects:pipelines:show':
|
||||
|
@ -383,6 +387,9 @@ import GpgBadges from './gpg_badges';
|
|||
shortcut_handler = new ShortcutsNavigation();
|
||||
new TreeView();
|
||||
new BlobViewer();
|
||||
$('#tree-slider').waitForImages(function() {
|
||||
gl.utils.ajaxGet(document.querySelector('.js-tree-content').dataset.logsPath);
|
||||
});
|
||||
break;
|
||||
case 'projects:find_file:show':
|
||||
shortcut_handler = true;
|
||||
|
@ -540,6 +547,7 @@ import GpgBadges from './gpg_badges';
|
|||
shortcut_handler = new ShortcutsWiki();
|
||||
new ZenMode();
|
||||
new gl.GLForm($('.wiki-form'), true);
|
||||
new Sidebar();
|
||||
break;
|
||||
case 'snippets':
|
||||
shortcut_handler = new ShortcutsNavigation();
|
||||
|
|
38
app/assets/javascripts/pipelines/pipelines_charts.js
Normal file
38
app/assets/javascripts/pipelines/pipelines_charts.js
Normal file
|
@ -0,0 +1,38 @@
|
|||
import Chart from 'vendor/Chart';
|
||||
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
const chartData = JSON.parse(document.getElementById('pipelinesChartsData').innerHTML);
|
||||
const buildChart = (chartScope) => {
|
||||
const data = {
|
||||
labels: chartScope.labels,
|
||||
datasets: [{
|
||||
fillColor: '#7f8fa4',
|
||||
strokeColor: '#7f8fa4',
|
||||
pointColor: '#7f8fa4',
|
||||
pointStrokeColor: '#EEE',
|
||||
data: chartScope.totalValues,
|
||||
},
|
||||
{
|
||||
fillColor: '#44aa22',
|
||||
strokeColor: '#44aa22',
|
||||
pointColor: '#44aa22',
|
||||
pointStrokeColor: '#fff',
|
||||
data: chartScope.successValues,
|
||||
},
|
||||
],
|
||||
};
|
||||
const ctx = $(`#${chartScope.scope}Chart`).get(0).getContext('2d');
|
||||
const options = {
|
||||
scaleOverlay: true,
|
||||
responsive: true,
|
||||
maintainAspectRatio: false,
|
||||
};
|
||||
if (window.innerWidth < 768) {
|
||||
// Scale fonts if window width lower than 768px (iPad portrait)
|
||||
options.scaleFontSize = 8;
|
||||
}
|
||||
new Chart(ctx).Line(data, options);
|
||||
};
|
||||
|
||||
chartData.forEach(scope => buildChart(scope));
|
||||
});
|
27
app/assets/javascripts/pipelines/pipelines_times.js
Normal file
27
app/assets/javascripts/pipelines/pipelines_times.js
Normal file
|
@ -0,0 +1,27 @@
|
|||
import Chart from 'vendor/Chart';
|
||||
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
const chartData = JSON.parse(document.getElementById('pipelinesTimesChartsData').innerHTML);
|
||||
const data = {
|
||||
labels: chartData.labels,
|
||||
datasets: [{
|
||||
fillColor: 'rgba(220,220,220,0.5)',
|
||||
strokeColor: 'rgba(220,220,220,1)',
|
||||
barStrokeWidth: 1,
|
||||
barValueSpacing: 1,
|
||||
barDatasetSpacing: 1,
|
||||
data: chartData.values,
|
||||
}],
|
||||
};
|
||||
const ctx = $('#build_timesChart').get(0).getContext('2d');
|
||||
const options = {
|
||||
scaleOverlay: true,
|
||||
responsive: true,
|
||||
maintainAspectRatio: false,
|
||||
};
|
||||
if (window.innerWidth < 768) {
|
||||
// Scale fonts if window width lower than 768px (iPad portrait)
|
||||
options.scaleFontSize = 8;
|
||||
}
|
||||
new Chart(ctx).Bar(data, options);
|
||||
});
|
43
app/assets/javascripts/projects/project_new.js
Normal file
43
app/assets/javascripts/projects/project_new.js
Normal file
|
@ -0,0 +1,43 @@
|
|||
document.addEventListener('DOMContentLoaded', () => {
|
||||
const importBtnTooltip = 'Please enter a valid project name.';
|
||||
const $importBtnWrapper = $('.import_gitlab_project');
|
||||
|
||||
$('.how_to_import_link').on('click', (e) => {
|
||||
e.preventDefault();
|
||||
$('.how_to_import_link').next('.modal').show();
|
||||
});
|
||||
|
||||
$('.modal-header .close').on('click', () => {
|
||||
$('.modal').hide();
|
||||
});
|
||||
|
||||
$('.btn_import_gitlab_project').on('click', () => {
|
||||
const importHref = $('a.btn_import_gitlab_project').attr('href');
|
||||
$('.btn_import_gitlab_project').attr('href', `${importHref}?namespace_id=${$('#project_namespace_id').val()}&path=${$('#project_path').val()}`);
|
||||
});
|
||||
|
||||
$('.btn_import_gitlab_project').attr('disabled', !$('#project_path').val().trim().length);
|
||||
$importBtnWrapper.attr('title', importBtnTooltip);
|
||||
|
||||
$('#new_project').on('submit', () => {
|
||||
const $path = $('#project_path');
|
||||
$path.val($path.val().trim());
|
||||
});
|
||||
|
||||
$('#project_path').on('keyup', () => {
|
||||
if ($('#project_path').val().trim().length) {
|
||||
$('.btn_import_gitlab_project').attr('disabled', false);
|
||||
$importBtnWrapper.attr('title', '');
|
||||
$importBtnWrapper.removeClass('has-tooltip');
|
||||
} else {
|
||||
$('.btn_import_gitlab_project').attr('disabled', true);
|
||||
$importBtnWrapper.addClass('has-tooltip');
|
||||
}
|
||||
});
|
||||
|
||||
$('#project_import_url').disable();
|
||||
$('.import_git').on('click', () => {
|
||||
const $projectImportUrl = $('#project_import_url');
|
||||
$projectImportUrl.attr('disabled', !$projectImportUrl.attr('disabled'));
|
||||
});
|
||||
});
|
|
@ -1,7 +1,8 @@
|
|||
class RefSelectDropdown {
|
||||
constructor($dropdownButton, availableRefs) {
|
||||
const availableRefsValue = availableRefs || JSON.parse(document.getElementById('availableRefs').innerHTML);
|
||||
$dropdownButton.glDropdown({
|
||||
data: availableRefs,
|
||||
data: availableRefsValue,
|
||||
filterable: true,
|
||||
filterByText: true,
|
||||
remote: false,
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
- page_title 'New Project'
|
||||
- header_title "Projects", dashboard_projects_path
|
||||
- visibility_level = params.dig(:project, :visibility_level) || default_project_visibility
|
||||
- content_for :page_specific_javascripts do
|
||||
= webpack_bundle_tag 'project_new'
|
||||
|
||||
.project-edit-container
|
||||
.project-edit-errors
|
||||
|
@ -111,46 +113,3 @@
|
|||
%i.fa.fa-spinner.fa-spin
|
||||
Creating project & repository.
|
||||
%p Please wait a moment, this page will automatically refresh when ready.
|
||||
|
||||
:javascript
|
||||
var importBtnTooltip = "Please enter a valid project name.";
|
||||
var $importBtnWrapper = $('.import_gitlab_project');
|
||||
|
||||
$('.how_to_import_link').bind('click', function (e) {
|
||||
e.preventDefault();
|
||||
var import_modal = $(this).next(".modal").show();
|
||||
});
|
||||
|
||||
$('.modal-header .close').bind('click', function() {
|
||||
$(".modal").hide();
|
||||
});
|
||||
|
||||
$('.btn_import_gitlab_project').bind('click', function() {
|
||||
var _href = $("a.btn_import_gitlab_project").attr("href");
|
||||
$(".btn_import_gitlab_project").attr("href", _href + '?namespace_id=' + $("#project_namespace_id").val() + '&path=' + $("#project_path").val());
|
||||
});
|
||||
|
||||
$('.btn_import_gitlab_project').attr('disabled', $('#project_path').val().trim().length === 0);
|
||||
$importBtnWrapper.attr('title', importBtnTooltip);
|
||||
|
||||
$('#new_project').submit(function(){
|
||||
var $path = $('#project_path');
|
||||
$path.val($path.val().trim());
|
||||
});
|
||||
|
||||
$('#project_path').keyup(function(){
|
||||
if($(this).val().trim().length !== 0) {
|
||||
$('.btn_import_gitlab_project').attr('disabled', false);
|
||||
$importBtnWrapper.attr('title','');
|
||||
$importBtnWrapper.removeClass('has-tooltip');
|
||||
} else {
|
||||
$('.btn_import_gitlab_project').attr('disabled',true);
|
||||
$importBtnWrapper.addClass('has-tooltip');
|
||||
}
|
||||
});
|
||||
|
||||
$('#project_import_url').disable();
|
||||
$('.import_git').click(function( event ) {
|
||||
$projectImportUrl = $('#project_import_url');
|
||||
$projectImportUrl.attr('disabled', !$projectImportUrl.attr('disabled'));
|
||||
});
|
||||
|
|
|
@ -1,27 +1,10 @@
|
|||
- content_for :page_specific_javascripts do
|
||||
= webpack_bundle_tag('pipelines_times')
|
||||
|
||||
%div
|
||||
%p.light
|
||||
= _("Commit duration in minutes for last 30 commits")
|
||||
|
||||
%canvas#build_timesChart{ height: 200 }
|
||||
|
||||
:javascript
|
||||
var data = {
|
||||
labels : #{@charts[:pipeline_times].labels.to_json},
|
||||
datasets : [
|
||||
{
|
||||
fillColor : "rgba(220,220,220,0.5)",
|
||||
strokeColor : "rgba(220,220,220,1)",
|
||||
barStrokeWidth: 1,
|
||||
barValueSpacing: 1,
|
||||
barDatasetSpacing: 1,
|
||||
data : #{@charts[:pipeline_times].pipeline_times.to_json}
|
||||
}
|
||||
]
|
||||
}
|
||||
var ctx = $("#build_timesChart").get(0).getContext("2d");
|
||||
var options = { scaleOverlay: true, responsive: true, maintainAspectRatio: false };
|
||||
if (window.innerWidth < 768) {
|
||||
// Scale fonts if window width lower than 768px (iPad portrait)
|
||||
options.scaleFontSize = 8
|
||||
}
|
||||
new Chart(ctx).Bar(data, options);
|
||||
%script#pipelinesTimesChartsData{ type: "application/json" }= { :labels => @charts[:pipeline_times].labels, :values => @charts[:pipeline_times].pipeline_times }.to_json.html_safe
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
- content_for :page_specific_javascripts do
|
||||
= webpack_bundle_tag('pipelines_charts')
|
||||
|
||||
%h4= _("Pipelines charts")
|
||||
%p
|
||||
|
||||
|
@ -26,31 +29,8 @@
|
|||
= _("Jobs for last year")
|
||||
%canvas#yearChart.padded{ height: 250 }
|
||||
|
||||
- [:week, :month, :year].each do |scope|
|
||||
:javascript
|
||||
var data = {
|
||||
labels : #{@charts[scope].labels.to_json},
|
||||
datasets : [
|
||||
{
|
||||
fillColor : "#7f8fa4",
|
||||
strokeColor : "#7f8fa4",
|
||||
pointColor : "#7f8fa4",
|
||||
pointStrokeColor : "#EEE",
|
||||
data : #{@charts[scope].total.to_json}
|
||||
},
|
||||
{
|
||||
fillColor : "#44aa22",
|
||||
strokeColor : "#44aa22",
|
||||
pointColor : "#44aa22",
|
||||
pointStrokeColor : "#fff",
|
||||
data : #{@charts[scope].success.to_json}
|
||||
}
|
||||
]
|
||||
}
|
||||
var ctx = $("##{scope}Chart").get(0).getContext("2d");
|
||||
var options = { scaleOverlay: true, responsive: true, maintainAspectRatio: false };
|
||||
if (window.innerWidth < 768) {
|
||||
// Scale fonts if window width lower than 768px (iPad portrait)
|
||||
options.scaleFontSize = 8
|
||||
}
|
||||
new Chart(ctx).Line(data, options);
|
||||
%script#pipelinesChartsData{ type: "application/json" }
|
||||
- chartData = []
|
||||
- [:week, :month, :year].each do |scope|
|
||||
- chartData.push({ 'scope' => scope, 'labels' => @charts[scope].labels, 'totalValues' => @charts[scope].total, 'successValues' => @charts[scope].success })
|
||||
= chartData.to_json.html_safe
|
||||
|
|
|
@ -20,7 +20,4 @@
|
|||
= f.submit 'Create pipeline', class: 'btn btn-create', tabindex: 3
|
||||
= link_to 'Cancel', project_pipelines_path(@project), class: 'btn btn-cancel'
|
||||
|
||||
:javascript
|
||||
var availableRefs = #{@project.repository.ref_names.to_json};
|
||||
|
||||
new NewBranchForm($('.js-new-pipeline-form'), availableRefs)
|
||||
%script#availableRefs{ type: "application/json" }= @project.repository.ref_names.to_json.html_safe
|
||||
|
|
|
@ -40,7 +40,4 @@
|
|||
.form-actions
|
||||
= button_tag 'Create tag', class: 'btn btn-create', tabindex: 3
|
||||
= link_to 'Cancel', project_tags_path(@project), class: 'btn btn-cancel'
|
||||
|
||||
:javascript
|
||||
window.gl = window.gl || { };
|
||||
window.gl.availableRefs = #{@project.repository.ref_names.to_json};
|
||||
%script#availableRefs{ type: "application/json" }= @project.repository.ref_names.to_json.html_safe
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.tree-content-holder
|
||||
.tree-content-holder.js-tree-content{ 'data-logs-path': @logs_path }
|
||||
.table-holder
|
||||
%table.table#tree-slider{ class: "table_#{@hex_path} tree-table" }
|
||||
%thead
|
||||
|
@ -22,9 +22,3 @@
|
|||
- if can_edit_tree?
|
||||
= render 'projects/blob/upload', title: _('Upload New File'), placeholder: _('Upload New File'), button_title: _('Upload file'), form_path: project_create_blob_path(@project, @id), method: :post
|
||||
= render 'projects/blob/new_dir'
|
||||
|
||||
:javascript
|
||||
// Load last commit log for each file in tree
|
||||
$('#tree-slider').waitForImages(function() {
|
||||
gl.utils.ajaxGet("#{escape_javascript(@logs_path)}");
|
||||
});
|
||||
|
|
|
@ -19,6 +19,3 @@
|
|||
More Pages
|
||||
|
||||
= render 'projects/wikis/new'
|
||||
|
||||
:javascript
|
||||
new Sidebar();
|
||||
|
|
|
@ -54,8 +54,11 @@ var config = {
|
|||
notebook_viewer: './blob/notebook_viewer.js',
|
||||
pdf_viewer: './blob/pdf_viewer.js',
|
||||
pipelines: './pipelines/pipelines_bundle.js',
|
||||
pipelines_details: './pipelines/pipeline_details_bundle.js',
|
||||
pipelines_charts: './pipelines/pipelines_charts.js',
|
||||
pipelines_details: './pipelines/pipeline_details_bundle.js',
|
||||
pipelines_times: './pipelines/pipelines_times.js',
|
||||
profile: './profile/profile_bundle.js',
|
||||
project_new: './projects/project_new.js',
|
||||
prometheus_metrics: './prometheus_metrics',
|
||||
protected_branches: './protected_branches',
|
||||
protected_tags: './protected_tags',
|
||||
|
|
Loading…
Reference in a new issue