asf_scaffold_generator 0.0.8 → 0.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/asf_scaffold_generator.rb
CHANGED
@@ -43,8 +43,11 @@ class AsfScaffoldGenerator < ScaffoldGenerator
|
|
43
43
|
File.join('app/views', controller_class_path, controller_file_name, "#{action}.rhtml"),
|
44
44
|
:assigns => { :action => action }
|
45
45
|
end
|
46
|
+
|
47
|
+
# ID resolver controller
|
48
|
+
m.template 'asf_resolveids_controller.rb', "app/controllers/asf_resolveids_controller.rb"
|
46
49
|
|
47
|
-
# Layout
|
50
|
+
# Layout
|
48
51
|
m.template 'asf_layout.rhtml', "app/views/layouts/#{controller_file_name}.rhtml"
|
49
52
|
end
|
50
53
|
end
|
data/templates/asf_layout.rhtml
CHANGED
@@ -5,13 +5,44 @@
|
|
5
5
|
<%% url = <%= model_name %>.connection.binding.url %>
|
6
6
|
<%%= tag("link", { "rel" => "Stylesheet", "type" => "text/css", "media" => "screen", "href" => "#{url.scheme}://#{url.host}:#{url.port}/dCSS/Theme2/default/common.css" }) %>
|
7
7
|
<script type="text/javascript" src="http://na1.salesforce.com/js/functions.js"></script>
|
8
|
+
<%%= javascript_include_tag "prototype", "effects" %>
|
9
|
+
|
10
|
+
<script>
|
11
|
+
function update_ids(id_map) {
|
12
|
+
links = document.getElementsByTagName('a')
|
13
|
+
|
14
|
+
for (var n = 0; n < links.length; n++) {
|
15
|
+
link = links[n]
|
16
|
+
|
17
|
+
// Look for any links that end in /show/<id>
|
18
|
+
pos = link.href.lastIndexOf("/show/")
|
19
|
+
if (pos >= 0) {
|
20
|
+
id = link.href.substring(pos + 6)
|
21
|
+
match = id_map[id]
|
22
|
+
if (match) {
|
23
|
+
link.innerHTML = match
|
24
|
+
new Effect.Highlight(link)
|
25
|
+
}
|
26
|
+
}
|
27
|
+
}
|
28
|
+
}
|
8
29
|
|
30
|
+
</script>
|
31
|
+
|
9
32
|
</head>
|
10
|
-
|
33
|
+
|
34
|
+
<body class="contact overviewPage" onload="request_id_resolve()">
|
11
35
|
|
12
36
|
<p style="color: green"><%%= flash[:notice] %></p>
|
13
37
|
|
14
38
|
<%%= @content_for_layout %>
|
15
39
|
|
40
|
+
<script>
|
41
|
+
function request_id_resolve() {
|
42
|
+
<%%= remote_function(:url => { :controller => 'asf_resolveids', :action => :resolve, :class => '<%= model_name %>', :ids => @id_resolver.serialize }, :complete => "update_ids(eval(request.responseText))") %>
|
43
|
+
}
|
44
|
+
</script>
|
45
|
+
|
46
|
+
|
16
47
|
</body>
|
17
48
|
</html>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
class AsfResolveidsController < ActionController::Base
|
2
|
+
def resolve
|
3
|
+
klass_name = params[:class]
|
4
|
+
ids = params[:ids]
|
5
|
+
|
6
|
+
klass = klass_name.constantize
|
7
|
+
connection = klass.connection
|
8
|
+
|
9
|
+
name_columns = (klass.columns.reject { |column| not column.is_name? }).map { |column| column.api_name }
|
10
|
+
|
11
|
+
id_resolver = ActiveSalesforce::IdResolver.new(connection)
|
12
|
+
id_resolver.deserialize(ids)
|
13
|
+
values = id_resolver.resolve
|
14
|
+
|
15
|
+
# Send back the JSON encoded mapping from OID => name
|
16
|
+
render(:text => "({ " + values.map { |id, names| "\"#{id}\" : \"" + names.map { |name, value| value }.join(' ') + '"'}.join(', ') + " })")
|
17
|
+
end
|
18
|
+
end
|
@@ -80,3 +80,9 @@
|
|
80
80
|
<%%= link_to 'Next page', { :page => @<%= singular_name %>_pages.current.next } if @<%= singular_name %>_pages.current.next %>
|
81
81
|
|
82
82
|
<br />
|
83
|
+
|
84
|
+
|
85
|
+
<%% @id_resolver = ActiveSalesforce::IdResolver.new(<%= model_name %>.connection)
|
86
|
+
@<%= plural_name %>.each { |<%= singular_name %>| @id_resolver.add(<%= singular_name %>, columns) }
|
87
|
+
%>
|
88
|
+
|
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.8.11
|
|
3
3
|
specification_version: 1
|
4
4
|
name: asf_scaffold_generator
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.0.
|
7
|
-
date: 2006-02
|
6
|
+
version: 0.0.9
|
7
|
+
date: 2006-03-02 00:00:00 -05:00
|
8
8
|
summary: ActiveSalesforce Generator provides additional salesforce aware scaffolding support.
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -31,18 +31,18 @@ files:
|
|
31
31
|
- ./USAGE
|
32
32
|
- ./asf_scaffold_generator.rb
|
33
33
|
- ./templates
|
34
|
+
- ./templates/asf_resolveids_controller.rb
|
34
35
|
- ./templates/asf_view_list.rhtml
|
35
36
|
- ./templates/asf_view_show.rhtml
|
36
37
|
- ./templates/asf_view_edit.rhtml
|
37
38
|
- ./templates/asf_view_new.rhtml
|
38
39
|
- ./templates/asf_layout.rhtml
|
39
|
-
-
|
40
|
+
- templates/asf_resolveids_controller.rb
|
40
41
|
- templates/asf_view_list.rhtml
|
41
42
|
- templates/asf_view_show.rhtml
|
42
43
|
- templates/asf_view_edit.rhtml
|
43
44
|
- templates/asf_view_new.rhtml
|
44
45
|
- templates/asf_layout.rhtml
|
45
|
-
- templates/asf_application.rb
|
46
46
|
- USAGE
|
47
47
|
test_files: []
|
48
48
|
|
@@ -1,17 +0,0 @@
|
|
1
|
-
# Filters added to this controller will be run for all controllers in the application.
|
2
|
-
# Likewise, all the methods added will be available for all controllers.
|
3
|
-
class ApplicationController < ActionController::Base
|
4
|
-
before_filter :asf_sid_authenticate
|
5
|
-
|
6
|
-
def asf_sid_authenticate
|
7
|
-
# Look to see if a SID was passed in the URL
|
8
|
-
sid = params[:sid]
|
9
|
-
if sid
|
10
|
-
api_server_url = params[:api_server_url]
|
11
|
-
api_server_url = 'http://na1-api.salesforce.com/services/Soap/u/7.0' unless api_server_url
|
12
|
-
|
13
|
-
puts "asf_sid_authenticate(:sid => '#{sid}', :url => '#{api_server_url}')"
|
14
|
-
Contact.establish_connection(:adapter => 'activesalesforce', :sid => sid, :url => api_server_url) if sid
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|