summaryrefslogtreecommitdiffstats
path: root/routers/repo
diff options
context:
space:
mode:
authorAndrey Nering <andrey.nering@gmail.com>2016-11-13 00:54:04 -0200
committerLunny Xiao <xiaolunwen@gmail.com>2016-11-13 10:54:04 +0800
commit739f07c98e1254f776a7cb943a3430de32b17d1d (patch)
tree5ba37863a5b2f3188413dc9267d57c63cdb744ff /routers/repo
parentbd76e156bb08424841ff992aaffcc5aef913b703 (diff)
downloadgitea-739f07c98e1254f776a7cb943a3430de32b17d1d.tar.gz
gitea-739f07c98e1254f776a7cb943a3430de32b17d1d.zip
Remember diff view style (#163)
Diffstat (limited to 'routers/repo')
-rw-r--r--routers/repo/commit.go2
-rw-r--r--routers/repo/middlewares.go21
-rw-r--r--routers/repo/pull.go1
3 files changed, 21 insertions, 3 deletions
diff --git a/routers/repo/commit.go b/routers/repo/commit.go
index e3170b053d..9706779ee5 100644
--- a/routers/repo/commit.go
+++ b/routers/repo/commit.go
@@ -180,7 +180,6 @@ func Diff(ctx *context.Context) {
}
ctx.Data["CommitID"] = commitID
- ctx.Data["IsSplitStyle"] = ctx.Query("style") == "split"
ctx.Data["Username"] = userName
ctx.Data["Reponame"] = repoName
ctx.Data["IsImageFile"] = commit.IsImageFile
@@ -239,7 +238,6 @@ func CompareDiff(ctx *context.Context) {
}
commits = models.ValidateCommitsWithEmails(commits)
- ctx.Data["IsSplitStyle"] = ctx.Query("style") == "split"
ctx.Data["CommitRepoLink"] = ctx.Repo.RepoLink
ctx.Data["Commits"] = commits
ctx.Data["CommitCount"] = commits.Len()
diff --git a/routers/repo/middlewares.go b/routers/repo/middlewares.go
index 94e007cd20..757a049ab7 100644
--- a/routers/repo/middlewares.go
+++ b/routers/repo/middlewares.go
@@ -21,3 +21,24 @@ func SetEditorconfigIfExists(ctx *context.Context) {
ctx.Data["Editorconfig"] = ec
}
+
+func SetDiffViewStyle(ctx *context.Context) {
+ var (
+ userStyle = ctx.User.DiffViewStyle
+ queryStyle = ctx.Query("style")
+ style string
+ )
+
+ if queryStyle == "unified" || queryStyle == "split" {
+ style = queryStyle
+ } else if userStyle == "unified" || userStyle == "split" {
+ style = userStyle
+ } else {
+ style = "unified"
+ }
+
+ ctx.Data["IsSplitStyle"] = style == "split"
+ if err := ctx.User.UpdateDiffViewStyle(style); err != nil {
+ ctx.Handle(500, "ErrUpdateDiffViewStyle", err)
+ }
+}
diff --git a/routers/repo/pull.go b/routers/repo/pull.go
index 83352d7f3c..6e99dfaed0 100644
--- a/routers/repo/pull.go
+++ b/routers/repo/pull.go
@@ -367,7 +367,6 @@ func ViewPullFiles(ctx *context.Context) {
}
headTarget := path.Join(pull.HeadUserName, pull.HeadRepo.Name)
- ctx.Data["IsSplitStyle"] = ctx.Query("style") == "split"
ctx.Data["Username"] = pull.HeadUserName
ctx.Data["Reponame"] = pull.HeadRepo.Name
ctx.Data["IsImageFile"] = commit.IsImageFile
/option> Nextcloud server, a safe home for all your data: https://github.com/nextcloud/serverwww-data
summaryrefslogtreecommitdiffstats
path: root/l10n/l10n.pl
blob: b07d6d686bc4a9fb77d7187f59ee10156816e07a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
#!/usr/bin/perl
use strict;
use Locale::PO;
use Cwd;
use Data::Dumper;
use File::Path;

sub crawlPrograms{
	my( $dir, $ignore ) = @_;
	my @found = ();

	opendir( DIR, $dir );
	my @files = readdir( DIR );
	closedir( DIR );
	@files = sort( @files );

	foreach my $i ( @files ){
		next if substr( $i, 0, 1 ) eq '.';
		if( $i eq 'l10n' && !$ignore ){
			push( @found, $dir );
		}
		elsif( -d $dir.'/'.$i ){
			push( @found, crawlPrograms( $dir.'/'.$i ));
		}
	}

	return @found;
}

sub crawlFiles{
	my( $dir ) = @_;
	my @found = ();

	opendir( DIR, $dir );
	my @files = readdir( DIR );
	closedir( DIR );
	@files = sort( @files );

	foreach my $i ( @files ){
		next if substr( $i, 0, 1 ) eq '.';
		next if $i eq 'l10n';
		
		if( -d $dir.'/'.$i ){
			push( @found, crawlFiles( $dir.'/'.$i ));
		}
		else{
			push(@found,$dir.'/'.$i) if $i =~ /\.js$/ || $i =~ /\.php$/;
		}
	}

	return @found;
}

sub readIgnorelist{
	return () unless -e 'l10n/ignorelist';
	my %ignore = ();
	open(IN,'l10n/ignorelist');
	while(<IN>){
		my $line = $_;
		chomp($line);
		$ignore{"./$line"}++;
	}
	close(IN);
	return %ignore;
}

my $task = shift( @ARGV );
my $place = '..';

die( "Usage: l10n.pl task\ntask: read, write\n" ) unless $task && $place;

# Our current position
my $whereami = cwd();
die( "Program must be executed in a l10n-folder called 'l10n'" ) unless $whereami =~ m/\/l10n$/;

# Where are i18n-files?
my @dirs = crawlPrograms( $place, 1 );

# Languages
my @languages = ();
opendir( DIR, '.' );
my @files = readdir( DIR );
closedir( DIR );
foreach my $i ( @files ){
	push( @languages, $i ) if -d $i && substr( $i, 0, 1 ) ne '.';
}

if( $task eq 'read' ){
	rmtree( 'templates' );
	mkdir( 'templates' ) unless -d 'templates';
	print "Mode: reading\n";
	foreach my $dir ( @dirs ){
		my @temp = split( /\//, $dir );
		my $app = pop( @temp );
		chdir( $dir );
		my @totranslate = crawlFiles('.');
		my %ignore = readIgnorelist();
		my $output = "${whereami}/templates/$app.pot";
		print "  Processing $app\n";

		foreach my $file ( @totranslate ){
			next if $ignore{$file};
			my $keyword = ( $file =~ /\.js$/ ? 't:2' : 't');
			my $language = ( $file =~ /\.js$/ ? 'Python' : 'PHP');
			my $joinexisting = ( -e $output ? '--join-existing' : '');
			print "    Reading $file\n";
			`xgettext --output="$output" $joinexisting --keyword=$keyword --language=$language "$file" --from-code=UTF-8 --package-version="5.0.0" --package-name="ownCloud Core" --msgid-bugs-address="translations\@owncloud.org"`;
		}
		chdir( $whereami );
	}
}
elsif( $task eq 'write' ){
	print "Mode: write\n";
	foreach my $dir ( @dirs ){
		my @temp = split( /\//, $dir );
		my $app = pop( @temp );
		chdir( $dir.'/l10n' );
		print "  Processing $app\n";
		foreach my $language ( @languages ){
			next if $language eq 'templates';
			
			my $input = "${whereami}/$language/$app.po";
			next unless -e $input;

			print "    Language $language\n";
			my $array = Locale::PO->load_file_asarray( $input );
			# Create array
			my @strings = ();
			foreach my $string ( @{$array} ){
				next if $string->msgid() eq '""';
				next if $string->msgstr() eq '""';
				push( @strings, $string->msgid()." => ".$string->msgstr());
			}
			next if $#strings == -1; # Skip empty files

			# Write PHP file
			open( OUT, ">$language.php" );
			print OUT "<?php \$TRANSLATIONS = array(\n";
			print OUT join( ",\n", @strings );
			print OUT "\n);\n";
			close( OUT );
		}
		chdir( $whereami );
	}
}
else{
	print "unknown task!\n";
}