diff --git a/lib/App/Controller/Apiv1.pm b/lib/App/Controller/Apiv1.pm index 780ab92..2142aa6 100644 --- a/lib/App/Controller/Apiv1.pm +++ b/lib/App/Controller/Apiv1.pm @@ -77,22 +77,9 @@ sub api_post_paste { sub api_get_languages { my $c=shift; - $c->render(json => {languages => [ - {name => "perl", description => "Perl (blead/git)"}, - {name => "perl4", description => "Perl 4.0.36"}, - {name => "perl5.5", description => "Perl 5.5"}, - {name => "perl5.6", description => "Perl 5.6"}, - {name => "perl5.8", description => "Perl 5.8"}, - {name => "perl5.10", description => "Perl 5.10"}, - {name => "perl5.12", description => "Perl 5.12"}, - {name => "perl5.14", description => "Perl 5.14"}, - {name => "perl5.16", description => "Perl 5.16"}, - {name => "perl5.18", description => "Perl 5.18"}, - {name => "perl5.20", description => "Perl 5.20"}, - {name => "perl5.22", description => "Perl 5.22"}, - {name => "perl5.24", description => "Perl 5.24"}, - {name => "text", description => "Plain text"}, - ]}); + my $lang_ar = $c->languages->get_languages(); + + $c->render(json => {languages => $lang_ar}); }; sub api_get_channels { diff --git a/lib/App/Controller/Paste.pm b/lib/App/Controller/Paste.pm index bcb244b..0a24761 100644 --- a/lib/App/Controller/Paste.pm +++ b/lib/App/Controller/Paste.pm @@ -102,7 +102,7 @@ sub get_paste { if ($row) { $c->stash($row); - $c->stash({language_mode => $c->languages->language_to_acemode($row->{language})}); + $c->stash({language => $c->languages->get_language_hash->{$row->{language}}}); $c->stash({page_tmpl => 'viewer.html'}); $c->stash({eval => $c->eval->get_eval($pasteid, $row->{paste}, $row->{language})}); $c->stash({paste_id => $pasteid}); diff --git a/lib/App/Model/Languages.pm b/lib/App/Model/Languages.pm index 07ceade..6bc0f98 100644 --- a/lib/App/Model/Languages.pm +++ b/lib/App/Model/Languages.pm @@ -5,22 +5,26 @@ use warnings; use Mojo::Base '-base'; +my @langs = ( + {name => "perl", mode => "perl", description => "Perl (blead/git)"}, + {name => "ruby", mode => "ruby", description => "Ruby (2.1)"}, + {name => "text", mode => "text", description => "Plain text"}, + {name => "perl5.24", mode => "perl", description => "Perl 5.24"}, + {name => "perl5.22", mode => "perl", description => "Perl 5.22"}, + {name => "perl5.20", mode => "perl", description => "Perl 5.20"}, + {name => "perl5.18", mode => "perl", description => "Perl 5.18"}, + {name => "perl5.16", mode => "perl", description => "Perl 5.16"}, + {name => "perl5.14", mode => "perl", description => "Perl 5.14"}, + {name => "perl5.12", mode => "perl", description => "Perl 5.12"}, + {name => "perl5.10", mode => "perl", description => "Perl 5.10"}, + {name => "perl5.8", mode => "perl", description => "Perl 5.8"}, + {name => "perl5.6", mode => "perl", description => "Perl 5.6"}, + {name => "perl5.5", mode => "perl", description => "Perl 5.5"}, + {name => "perl4", mode => "perl", description => "Perl 4.0.36"}, +); + my %langs = ( - "perl" => {mode => "perl", description => "Perl (blead/git)"}, - "perl4" => {mode => "perl", description => "Perl 4.0.36"}, - "perl5.5" => {mode => "perl", description => "Perl 5.5"}, - "perl5.6" => {mode => "perl", description => "Perl 5.6"}, - "perl5.8" => {mode => "perl", description => "Perl 5.8"}, - "perl5.10" => {mode => "perl", description => "Perl 5.10"}, - "perl5.12" => {mode => "perl", description => "Perl 5.12"}, - "perl5.14" => {mode => "perl", description => "Perl 5.14"}, - "perl5.16" => {mode => "perl", description => "Perl 5.16"}, - "perl5.18" => {mode => "perl", description => "Perl 5.18"}, - "perl5.20" => {mode => "perl", description => "Perl 5.20"}, - "perl5.22" => {mode => "perl", description => "Perl 5.22"}, - "perl5.24" => {mode => "perl", description => "Perl 5.24"}, - "text" => {mode => "text", description => "Plain text"}, - "ruby" => {mode => "ruby", description => "Ruby (2.1)"}, + map {$_->{name} => $_} @langs, ); sub language_to_acemode { @@ -29,8 +33,12 @@ sub language_to_acemode { return $langs{$lang}{mode} // "text"; } -sub get_languages { +sub get_language_hash { return \%langs; } +sub get_languages { + return \@langs +} + 1; diff --git a/templates/editor.html b/templates/editor.html index d621ea5..2d55cbb 100755 --- a/templates/editor.html +++ b/templates/editor.html @@ -94,21 +94,9 @@ - [% language %] + [% language.description %]
@@ -83,7 +83,7 @@ var editor = ace.edit("editor"); //editor.setTheme("ace/theme/twilight"); - editor.session.setMode("ace/mode/[% language_mode %]"); + editor.session.setMode("ace/mode/[% language.mode %]"); var use_editor = function() { if ($("#raw_editor").is(":checked")) {