admin_tools_ennder 1.3.20
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/Changelog +158 -0
- data/MIT-LICENSE +20 -0
- data/README.md +89 -0
- data/Rakefile +2 -0
- data/TODO +0 -0
- data/app/controllers/admin_dev_infos_controller.rb +46 -0
- data/app/controllers/admin_gems_controller.rb +24 -0
- data/app/controllers/admin_inflexions_controller.rb +6 -0
- data/app/controllers/admin_menu_controller.rb +2 -0
- data/app/controllers/admin_routes_controller.rb +21 -0
- data/app/controllers/admin_send_file_controller.rb +8 -0
- data/app/controllers/admin_translations_controller.rb +21 -0
- data/app/controllers/admin_url_infos_controller.rb +7 -0
- data/app/controllers/application_controller.rb +10 -0
- data/app/controllers/commands_controller.rb +152 -0
- data/app/controllers/gmm_controller.rb +27 -0
- data/app/controllers/processus_controller.rb +8 -0
- data/app/helpers/application_helper.rb +11 -0
- data/app/metal/metal_processus_liste.rb +13 -0
- data/app/models/command.rb +5 -0
- data/app/views/admin_dev_infos/index.html.erb +7 -0
- data/app/views/admin_dev_infos/show.html.erb +43 -0
- data/app/views/admin_gems/_gem_infos.html.erb +46 -0
- data/app/views/admin_gems/index.html.erb +3 -0
- data/app/views/admin_inflexions/index.html.erb +41 -0
- data/app/views/admin_menu/index.html.erb +29 -0
- data/app/views/admin_routes/index.html.erb +64 -0
- data/app/views/admin_send_file/index.html.erb +7 -0
- data/app/views/admin_translations/index.html.erb +128 -0
- data/app/views/admin_url_infos/index.html.erb +91 -0
- data/app/views/commands/_execute_results.html.erb +10 -0
- data/app/views/commands/execute.html.erb +10 -0
- data/app/views/commands/executed.html.erb +12 -0
- data/app/views/commands/index.html.erb +24 -0
- data/app/views/commands/new.html.erb +15 -0
- data/app/views/commands/show.html.erb +10 -0
- data/app/views/common/_error_messages.html.erb +10 -0
- data/app/views/common/_top_menu.html.erb +2 -0
- data/app/views/gmm/index.html.erb +34 -0
- data/app/views/processus/index.html.erb +9 -0
- data/config/routes.rb +75 -0
- data/db/migrate/20100422173622_create_commands.rb +13 -0
- data/db/migrate/rails_before_5/20100422173622_create_commands.rb +13 -0
- data/lib/admin_tools_ennder.rb +77 -0
- data/lib/admin_tools_ennder/engine.rb +7 -0
- data/lib/gtm.rb +75 -0
- data/lib/tasks/admin_tools_ennder_tasks.rake +11 -0
- data/test/admin_tools_ennder_test.rb +8 -0
- data/test/test_helper.rb +3 -0
- metadata +95 -0
@@ -0,0 +1,27 @@
|
|
1
|
+
class GmmController < ApplicationController
|
2
|
+
def index
|
3
|
+
unless defined?(@all_models)
|
4
|
+
@@all_models = {}
|
5
|
+
# Load any model classes
|
6
|
+
Dir[Rails.root.to_s + '/app/models/**/*.rb'].each do |file|
|
7
|
+
begin
|
8
|
+
Rails.logger.info "GTM: loading #{file}"
|
9
|
+
require file
|
10
|
+
rescue
|
11
|
+
Rails.logger.error "GTM: Error loading #{file}"
|
12
|
+
end
|
13
|
+
|
14
|
+
# Store it in a class object
|
15
|
+
ActiveRecord::Base.descendants.each{|m|
|
16
|
+
@@all_models[m.name] = {
|
17
|
+
:has_many => m.reflect_on_all_associations(:has_many),
|
18
|
+
:has_one => m.reflect_on_all_associations(:has_one),
|
19
|
+
:belongs_to => m.reflect_on_all_associations(:belongs_to)
|
20
|
+
}
|
21
|
+
}
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
@all_models = @@all_models
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
module ApplicationHelper
|
2
|
+
if Rails::VERSION::MAJOR >= 3
|
3
|
+
def periodically_call_remote(options = {})
|
4
|
+
frequency = options[:frequency] || 10 # every ten seconds by default
|
5
|
+
|
6
|
+
code = "new PeriodicalExecuter(function() {#{remote_function(options)}}, #{frequency})"
|
7
|
+
|
8
|
+
javascript_tag(code)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
# Allow the metal piece to run in isolation
|
3
|
+
require(File.dirname(__FILE__) + "/../../config/environment") unless defined?(Rails)
|
4
|
+
|
5
|
+
class MetalProcessusListe
|
6
|
+
def self.call(env)
|
7
|
+
if env["PATH_INFO"] =~ /^\/admin\/metal_processus_liste/
|
8
|
+
[200, {"Content-Type" => "text/html"}, [Time.new.strftime("%Y-%m-%d_%H:%M:%S") + '<br/>' + `ps -edfH`]]
|
9
|
+
else
|
10
|
+
[404, {"Content-Type" => "text/html"}, ["Pas Trouvé"]]
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
<%= link_to 'Retour au menu', :controller => :admin_menu %><br/>
|
2
|
+
<br/>
|
3
|
+
|
4
|
+
<% if defined? @l_objet %>
|
5
|
+
<h1>Infos sur <%= @l_objet.class.name %> (ancêtre : <%= @l_objet.class.superclass %>)</h1>
|
6
|
+
|
7
|
+
|
8
|
+
<table border="2">
|
9
|
+
<thead>
|
10
|
+
<th>ancêtres (<%= @l_objet.class.ancestors.size %>)</th>
|
11
|
+
</thead>
|
12
|
+
|
13
|
+
<% @l_objet.class.ancestors.each { |ancetre| %>
|
14
|
+
<tr>
|
15
|
+
<td><%= ancetre %></td>
|
16
|
+
</tr>
|
17
|
+
<% } %>
|
18
|
+
|
19
|
+
|
20
|
+
<thead>
|
21
|
+
<th>méthodes publiques (<%= @l_objet.public_methods.size %>)</th>
|
22
|
+
</thead>
|
23
|
+
|
24
|
+
<% @l_objet.public_methods.sort.each { |methode| %>
|
25
|
+
<%
|
26
|
+
methode_3_fin = methode[-4..-1]
|
27
|
+
if methode_3_fin == '_ids' then
|
28
|
+
b_deb = '<b>'
|
29
|
+
b_fin = '</b> (méthode dynamique)'
|
30
|
+
else
|
31
|
+
b_deb = ''
|
32
|
+
b_fin = ''
|
33
|
+
end
|
34
|
+
%>
|
35
|
+
<tr>
|
36
|
+
<td><%= b_deb + methode + b_fin %></td>
|
37
|
+
</tr>
|
38
|
+
<% } %>
|
39
|
+
</table>
|
40
|
+
<% else %>
|
41
|
+
L'objet <%= params[:nom_objet] %> n'existe PAS !
|
42
|
+
<% end %>
|
43
|
+
|
@@ -0,0 +1,46 @@
|
|
1
|
+
<h3>Chemin des Gems</h3>
|
2
|
+
|
3
|
+
<table border="2">
|
4
|
+
<thead>
|
5
|
+
<tr><th>n°</th><th>chemin</th></tr>
|
6
|
+
</thead>
|
7
|
+
<%
|
8
|
+
if Rails::VERSION::MAJOR < 3
|
9
|
+
%>
|
10
|
+
<%
|
11
|
+
Gem.path.each_with_index do |_chemin, i|
|
12
|
+
%>
|
13
|
+
<tr><td><%= i %></td><td><%= _chemin %></td></tr>
|
14
|
+
<%
|
15
|
+
end
|
16
|
+
else
|
17
|
+
%>
|
18
|
+
<tr><td></td><td>Gem.path Marche que pour Rails 2.</td></tr>
|
19
|
+
<%
|
20
|
+
end
|
21
|
+
%>
|
22
|
+
</table>
|
23
|
+
<br/>
|
24
|
+
|
25
|
+
|
26
|
+
<h3>Liste des gems chargés dans l'application :</h3>
|
27
|
+
|
28
|
+
<table border="2">
|
29
|
+
<thead>
|
30
|
+
<tr><th>No</th><th>Nom</th><th>Version</th></tr>
|
31
|
+
</thead>
|
32
|
+
<%
|
33
|
+
@application_gems.each_with_index do |g, i|
|
34
|
+
%>
|
35
|
+
<tr>
|
36
|
+
<td><%= i %></td>
|
37
|
+
<td id="gem_name_<%= g[0] %>"><%= g[0] %></td>
|
38
|
+
<td><%= g[1] %></td>
|
39
|
+
</tr>
|
40
|
+
<%
|
41
|
+
end
|
42
|
+
%>
|
43
|
+
</table>
|
44
|
+
|
45
|
+
<h3>Liste des gems disponibles :</h3>
|
46
|
+
Pas encore développé.
|
@@ -0,0 +1,41 @@
|
|
1
|
+
<%= render :partial => 'common/top_menu' %>
|
2
|
+
|
3
|
+
<h1>Liste des inflexions</h1>
|
4
|
+
|
5
|
+
<u>Exemples:</u><br/>
|
6
|
+
pluriel de categorie: <%= "categorie".pluralize %><br/>
|
7
|
+
singulier de categories: <%= "categories".singularize %><br/>
|
8
|
+
<br/>
|
9
|
+
|
10
|
+
<table border="2">
|
11
|
+
<thead>
|
12
|
+
<th>règle</th><th>remplacement</th>
|
13
|
+
</thead>
|
14
|
+
|
15
|
+
<tr>
|
16
|
+
<th colspan="2" id="pluriels">[<%= @inflections_plur.size %>] pluriel(s)</th>
|
17
|
+
</tr>
|
18
|
+
<% @inflections_plur.each { |(rule, replacement)| %>
|
19
|
+
<tr>
|
20
|
+
<td><%= rule %></td><td><%= replacement %></td>
|
21
|
+
</tr>
|
22
|
+
<% } %>
|
23
|
+
</table>
|
24
|
+
|
25
|
+
<br/>
|
26
|
+
|
27
|
+
<table border="2">
|
28
|
+
<thead>
|
29
|
+
<th>règle</th><th>remplacement</th>
|
30
|
+
</thead>
|
31
|
+
<tr>
|
32
|
+
<th colspan="2" id="singuliers">[<%= @inflections_sing.size %>] singulier(s)</th>
|
33
|
+
</tr>
|
34
|
+
<% @inflections_sing.each { |(rule, replacement)| %>
|
35
|
+
<tr>
|
36
|
+
<td><%= rule %></td><td><%= replacement %></td>
|
37
|
+
</tr>
|
38
|
+
<% } %>
|
39
|
+
|
40
|
+
</table>
|
41
|
+
|
@@ -0,0 +1,29 @@
|
|
1
|
+
<!-- inclus => pas besoin du body -->
|
2
|
+
Version de Rails: <span id="rails_version"><b><%= Rails::VERSION::STRING %></b></span><br/>
|
3
|
+
Version de Ruby: <span id="ruby_version"><b><%= RUBY_VERSION %> p<%= RUBY_PATCHLEVEL %></b></span><br/>
|
4
|
+
<br/>
|
5
|
+
|
6
|
+
<h2>Listes :</h2>
|
7
|
+
|
8
|
+
<%= link_to 'Liste des inflexions', admin_inflexions_path %><br/>
|
9
|
+
<%= link_to 'Liste des traductions', admin_translations_path %><br/>
|
10
|
+
<%= link_to 'Liste des routes', admin_routes_path %><br/>
|
11
|
+
<%= link_to 'Liste des gems', admin_gems_path %><br/>
|
12
|
+
<br/>
|
13
|
+
|
14
|
+
<h2>Processus :</h2>
|
15
|
+
|
16
|
+
<%= link_to 'Liste des processus du serveur', '/admin/processus_liste' %><br/>
|
17
|
+
<%= link_to 'Liste des processus du serveur (metal)', '/admin/metal_processus_liste' %><br/>
|
18
|
+
<br/>
|
19
|
+
|
20
|
+
<h2>Infos de dev :</h2>
|
21
|
+
|
22
|
+
<%= link_to 'Infos de developpement', admin_dev_infos_path %><br/>
|
23
|
+
<%= link_to 'Infos Url', admin_url_infos_path %><br/>
|
24
|
+
<br/>
|
25
|
+
|
26
|
+
<h2>Outils :</h2>
|
27
|
+
<%= link_to 'Execution de commandes shell', admin_commands_path %><br/>
|
28
|
+
<%= link_to 'Télécharger un fichier sur le serveur', admin_send_file_path %><br/>
|
29
|
+
<%= link_to 'Generic Models Management (GMM)', admin_gmm_path %><br/>
|
@@ -0,0 +1,64 @@
|
|
1
|
+
<%= render :partial => 'common/top_menu' %>
|
2
|
+
|
3
|
+
<h2>Non-Nommées</h2>
|
4
|
+
|
5
|
+
<table border="2">
|
6
|
+
<thead>
|
7
|
+
<th colspan="2">Routes</th>
|
8
|
+
</thead>
|
9
|
+
<%
|
10
|
+
@routes_hash.each_with_index { |r, i|
|
11
|
+
%>
|
12
|
+
<tr>
|
13
|
+
<td><%= i %></td>
|
14
|
+
<td>
|
15
|
+
defaults : <%= r.defaults %><br/>
|
16
|
+
constraints : <%= r.constraints %><br/>
|
17
|
+
precedence : <%= r.precedence %><br/>
|
18
|
+
<u>pattern</u> : <br/>
|
19
|
+
pattern.ast : <%= r.path.ast %><br/>
|
20
|
+
pattern.names : <%= r.path.names %><br/>
|
21
|
+
pattern.source : <%= r.path.source %><br/>
|
22
|
+
</td>
|
23
|
+
</tr>
|
24
|
+
<% } %>
|
25
|
+
</table>
|
26
|
+
<br/>
|
27
|
+
|
28
|
+
<h2>Nommées</h2>
|
29
|
+
|
30
|
+
<table border="2">
|
31
|
+
<thead>
|
32
|
+
<th colspan="3">Routes nommées</th>
|
33
|
+
</thead>
|
34
|
+
<%
|
35
|
+
@routes_hash.each_with_index { |nr, i|
|
36
|
+
if nr.is_a?(Array)
|
37
|
+
r = nr[1]
|
38
|
+
nom_route = nr[0]
|
39
|
+
else
|
40
|
+
r = nr
|
41
|
+
nom_route = r.name
|
42
|
+
end
|
43
|
+
%>
|
44
|
+
<tr>
|
45
|
+
<td>
|
46
|
+
<%= i %>
|
47
|
+
</td>
|
48
|
+
<td>
|
49
|
+
<%= nom_route %>
|
50
|
+
</td>
|
51
|
+
<td>
|
52
|
+
defaults : <%= r.defaults %><br/>
|
53
|
+
constraints : <%= r.constraints %><br/>
|
54
|
+
precedence : <%= r.precedence %><br/>
|
55
|
+
<u>pattern</u> : <br/>
|
56
|
+
pattern.ast : <%= r.path.ast %><br/>
|
57
|
+
pattern.names : <%= r.path.names %><br/>
|
58
|
+
pattern.source : <%= r.path.source %><br/>
|
59
|
+
</td>
|
60
|
+
</tr>
|
61
|
+
<%
|
62
|
+
}
|
63
|
+
%>
|
64
|
+
</table>
|
@@ -0,0 +1,128 @@
|
|
1
|
+
<%= render :partial => 'common/top_menu' %>
|
2
|
+
|
3
|
+
<h1>Liste des traductions</h1>
|
4
|
+
|
5
|
+
|
6
|
+
Locale(s) disponible(s) [<%= I18n.available_locales.size %>] :<%= @locales_list.html_safe %><br/>
|
7
|
+
<br/>
|
8
|
+
|
9
|
+
<table border="2">
|
10
|
+
<thead>
|
11
|
+
<th>clé</th><th>traduction (<%= @traductions_all.size %>)</th>
|
12
|
+
</thead>
|
13
|
+
|
14
|
+
<%
|
15
|
+
#Pour chaque locale
|
16
|
+
@traductions_all.each { |_locale, _traductions_locale|
|
17
|
+
%>
|
18
|
+
<tr>
|
19
|
+
<th colspan="2"> </th>
|
20
|
+
</tr>
|
21
|
+
<tr>
|
22
|
+
<th colspan="2" style="text-align: left"><%= _traductions_locale.size %> traduction(s) pour <%= _locale %></th>
|
23
|
+
</tr>
|
24
|
+
<%
|
25
|
+
#Bloc de traduction pour la locale
|
26
|
+
_traductions_locale.each { |_bloc, _traductions_bloc|
|
27
|
+
%>
|
28
|
+
<tr>
|
29
|
+
<th colspan="2" style="text-align: left">Bloc <%= _bloc %> [<%= _traductions_bloc.size %>] Traduction(s)</th>
|
30
|
+
</tr>
|
31
|
+
<%
|
32
|
+
if _traductions_bloc.is_a?(Hash)
|
33
|
+
#Un bloc contenant une table de hachage
|
34
|
+
|
35
|
+
_traductions_bloc.each { |_sous_bloc, _traductions_sous_bloc|
|
36
|
+
|
37
|
+
if _traductions_sous_bloc.is_a?(Hash)
|
38
|
+
#Un sous-bloc contenant une table de hachage
|
39
|
+
|
40
|
+
%>
|
41
|
+
<tr>
|
42
|
+
<th colspan="2" style="text-align: left"> > Sous-Bloc <%= _sous_bloc %> [<%= _traductions_sous_bloc.size %>] Traduction(s)</th>
|
43
|
+
</tr>
|
44
|
+
<%
|
45
|
+
_traductions_sous_bloc.each { |_sous_sous_bloc, _traductions_sous_sous_bloc|
|
46
|
+
|
47
|
+
if _traductions_sous_sous_bloc.is_a?(Hash)
|
48
|
+
#Un sous-sous-bloc contenant une table de hachage
|
49
|
+
%>
|
50
|
+
<tr>
|
51
|
+
<th colspan="2" style="text-align: left"> >> Sous-Sous-Bloc <%= _sous_sous_bloc %> [<%= _traductions_sous_sous_bloc.size %>] Traduction(s)</th>
|
52
|
+
</tr>
|
53
|
+
<%
|
54
|
+
_traductions_sous_sous_bloc.each { |_sous_sous_sous_bloc, _traductions_sous_sous_sous_bloc|
|
55
|
+
|
56
|
+
if _traductions_sous_sous_sous_bloc.is_a?(Hash)
|
57
|
+
#Un sous-sous-sous-bloc contenant une table de hachage
|
58
|
+
%>
|
59
|
+
<tr>
|
60
|
+
<th colspan="2" style="text-align: left"> >>> Sous-Sous-Sous-Bloc <%= _sous_sous_sous_bloc %> [<%= _traductions_sous_sous_sous_bloc.size %>] Traduction(s)</th>
|
61
|
+
</tr>
|
62
|
+
<%
|
63
|
+
_traductions_sous_sous_sous_bloc.each { |_cle, _traduction|
|
64
|
+
%>
|
65
|
+
<tr>
|
66
|
+
<td><%= _cle %></td><td><%= _traduction %></td>
|
67
|
+
</tr>
|
68
|
+
<%
|
69
|
+
}
|
70
|
+
elsif _traductions_sous_sous_sous_bloc.is_a?(Array)
|
71
|
+
#Un sous-sous-sous-bloc contenant un tableau
|
72
|
+
%>
|
73
|
+
<tr>
|
74
|
+
<td><%= _sous_sous_sous_bloc %></td><td><%= _traductions_sous_sous_sous_bloc.join('<br/>') %></td>
|
75
|
+
</tr>
|
76
|
+
<%
|
77
|
+
else
|
78
|
+
#Un sous-sous-sous-bloc contenant une traduction simple
|
79
|
+
%>
|
80
|
+
<tr>
|
81
|
+
<td><%= _sous_sous_sous_bloc %></td><td><%= _traductions_sous_sous_sous_bloc %></td>
|
82
|
+
</tr>
|
83
|
+
<%
|
84
|
+
end
|
85
|
+
} #FIN - sous-sous-sous-bloc
|
86
|
+
elsif _traductions_sous_sous_bloc.is_a?(Array)
|
87
|
+
#Un sous-sous-bloc contenant un tableau
|
88
|
+
%>
|
89
|
+
<tr>
|
90
|
+
<td><%= _sous_sous_bloc %></td><td><%= _traductions_sous_sous_bloc.join('<br/>') %></td>
|
91
|
+
</tr>
|
92
|
+
<%
|
93
|
+
else
|
94
|
+
#Un sous-sous-bloc contenant une traduction simple
|
95
|
+
%>
|
96
|
+
<tr>
|
97
|
+
<td><%= _sous_sous_bloc %></td><td><%= _traductions_sous_sous_bloc %></td>
|
98
|
+
</tr>
|
99
|
+
<%
|
100
|
+
end
|
101
|
+
} #FIN - sous-sous-bloc
|
102
|
+
elsif _traductions_sous_bloc.is_a?(Array)
|
103
|
+
#Un sous-bloc contenant un tableau
|
104
|
+
%>
|
105
|
+
<tr>
|
106
|
+
<td><%= _sous_bloc %></td><td><%= _traductions_sous_bloc.join('<br/>') %></td>
|
107
|
+
</tr>
|
108
|
+
<%
|
109
|
+
else
|
110
|
+
#Un sous-bloc contenant une traduction simple
|
111
|
+
%>
|
112
|
+
<tr>
|
113
|
+
<td><%= _sous_bloc %></td><td><%= _traductions_sous_bloc %></td>
|
114
|
+
</tr>
|
115
|
+
<%
|
116
|
+
end
|
117
|
+
} #FIN - sous-bloc
|
118
|
+
else
|
119
|
+
%>
|
120
|
+
<tr>
|
121
|
+
<td><%= _bloc %></td><td><%= _traductions_bloc %></td>
|
122
|
+
</tr>
|
123
|
+
<%
|
124
|
+
end
|
125
|
+
} #FIN - bloc
|
126
|
+
} #FIN - Pour chaque locale
|
127
|
+
%>
|
128
|
+
</table>
|