summaryrefslogtreecommitdiffstats
path: root/web_src
diff options
context:
space:
mode:
authorKN4CK3R <KN4CK3R@users.noreply.github.com>2021-03-29 22:44:28 +0200
committerGitHub <noreply@github.com>2021-03-29 22:44:28 +0200
commit0c6137617fbf41ee6cb315f96a2acc2dd91203e8 (patch)
tree27c8d1304334f1783232166927093419079ecd2a /web_src
parentd3b8127ad372bbce8d891d8893ffe6e834590751 (diff)
downloadgitea-0c6137617fbf41ee6cb315f96a2acc2dd91203e8.tar.gz
gitea-0c6137617fbf41ee6cb315f96a2acc2dd91203e8.zip
Add Tabular Diff for CSV files (#14661)
Implements request #14320 The rendering of CSV files does match the diff style. * Moved CSV logic into base package. * Added method to create a tabular diff. * Added CSV compare context. * Added CSV diff template. * Use new table style in CSV markup. * Added file size limit for CSV rendering. * Display CSV parser errors in diff. * Lazy read single file. * Lazy read rows for full diff. * Added unit tests for various CSV changes.
Diffstat (limited to 'web_src')
-rw-r--r--web_src/js/index.js13
-rw-r--r--web_src/less/_markdown.less25
-rw-r--r--web_src/less/_repository.less59
3 files changed, 72 insertions, 25 deletions
diff --git a/web_src/js/index.js b/web_src/js/index.js
index de9b99d4ef..aa9b3be004 100644
--- a/web_src/js/index.js
+++ b/web_src/js/index.js
@@ -2489,6 +2489,18 @@ function initIssueReferenceRepositorySearch() {
});
}
+function initFileViewToggle() {
+ $('.file-view-toggle').on('click', function() {
+ const $this = $(this);
+ $this.parent().children().removeClass('active');
+ $this.addClass('active');
+
+ const $target = $($this.data('toggle-selector'));
+ $target.parent().children().addClass('hide');
+ $target.removeClass('hide');
+ });
+}
+
function initLinkAccountView() {
const $lnkUserPage = $('.page-content.user.link-account');
if ($lnkUserPage.length === 0) {
@@ -2756,6 +2768,7 @@ $(document).ready(async () => {
initTableSort();
initNotificationsTable();
initPullRequestMergeInstruction();
+ initFileViewToggle();
initReleaseEditor();
initRelease();
diff --git a/web_src/less/_markdown.less b/web_src/less/_markdown.less
index 6bb0bf4328..09c94f0678 100644
--- a/web_src/less/_markdown.less
+++ b/web_src/less/_markdown.less
@@ -473,31 +473,6 @@
box-shadow: inset 0 -1px 0 var(--color-secondary);
}
- .csv-data td,
- .csv-data th {
- padding: 5px;
- overflow: hidden;
- font-size: 12px;
- line-height: 1;
- text-align: left;
- white-space: nowrap;
- }
-
- .csv-data .blob-num {
- padding: 10px 8px 9px;
- text-align: right;
- border: 0;
- }
-
- .csv-data tr {
- border-top: 0;
- }
-
- .csv-data th {
- font-weight: 600;
- border-top: 0;
- }
-
.ui.list .list,
ol.ui.list ol,
ul.ui.list ul {
diff --git a/web_src/less/_repository.less b/web_src/less/_repository.less
index c49da7b395..10e5736787 100644
--- a/web_src/less/_repository.less
+++ b/web_src/less/_repository.less
@@ -1455,6 +1455,65 @@
}
}
+ .data-table {
+ width: 100%;
+
+ tr {
+ border-top: 0;
+ }
+
+ td,
+ th {
+ padding: 5px !important;
+ overflow: hidden;
+ font-size: 12px;
+ text-align: left;
+ white-space: nowrap;
+ border: 1px solid var(--color-secondary);
+ }
+
+ td {
+ white-space: pre-line;
+ }
+
+ th {
+ font-weight: 600;
+ background: var(--color-box-header);
+ border-top: 0;
+ }
+
+ td.added,
+ th.added,
+ tr.added {
+ background-color: var(--color-diff-added-row-bg) !important;
+ }
+
+ td.removed,
+ th.removed,
+ tr.removed {
+ background-color: var(--color-diff-removed-row-bg) !important;
+ }
+
+ tbody.section {
+ border-top: 2px solid var(--color-secondary);
+ }
+
+ .line-num {
+ width: 1%;
+ min-width: 50px;
+ font-family: monospace;
+ line-height: 20px;
+ color: var(--color-secondary-dark-2);
+ white-space: nowrap;
+ vertical-align: top;
+ cursor: pointer;
+ user-select: none;
+ text-align: right;
+ background: var(--color-body);
+ border: 0;
+ }
+ }
+
.diff-detail-box {
padding: 7px 0;
background: var(--color-body);