omniauth-centro 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,5 +1,5 @@
1
1
  module OmniAuth
2
2
  module Centro
3
- VERSION = "0.0.2"
3
+ VERSION = "0.0.3"
4
4
  end
5
5
  end
@@ -0,0 +1,119 @@
1
+ <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
2
+ <script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.8.23/jquery-ui.min.js"></script>
3
+
4
+ <link href="http://wwwendt.de/tech/dynatree/src/skin/ui.dynatree.css" rel="stylesheet" type="text/css">
5
+ <script src="http://wwwendt.de/tech/dynatree/src/jquery.dynatree.js" type="text/javascript"></script>
6
+
7
+ <script type="text/javascript">
8
+ var updateRawInfoJsonFromTree = function() {
9
+ var rawInfo = { organizations: [], memberships: [] };
10
+ var products = {};
11
+ var organization_owner = {};
12
+ var tree = getTree();
13
+ var selectedOrganizationId = null;
14
+
15
+ tree.visit(function(node) {
16
+ if (node.data.product_name) {
17
+ organization_id = node.data.organization_id;
18
+
19
+ if (products[organization_id] == null) {
20
+ products[organization_id] = [];
21
+ }
22
+
23
+ if (node.bSelected == true) {
24
+ products[organization_id].push(node.data.product_name);
25
+ selectedOrganizationId = organization_id;
26
+ }
27
+ } else if (node.data.title == "organization_owner") {
28
+ organization_owner[node.data.organization_id] = node.bSelected;
29
+ }
30
+ });
31
+
32
+ tree.visit(function(node) {
33
+ if (node.data.id == selectedOrganizationId) {
34
+ rawInfo.organizations.push({ id: node.data.id, name: node.data.title });
35
+ }
36
+ });
37
+
38
+ $.each(rawInfo.organizations, function(index, organization) {
39
+ rawInfo.memberships.push({ organization_id: organization.id, organization_name: organization.name, organization_owner: organization_owner[organization.id], products: products[organization.id] });
40
+ });
41
+
42
+ rawInfo["current_organization_id"] = selectedOrganizationId;
43
+ $('#raw_info_json')[0].value = JSON.stringify(rawInfo);
44
+ }
45
+
46
+ var ensureSingleOrganizationSelected = function(selectedNode) {
47
+ getTree().visit(function(node) {
48
+ if (node.data.id) {
49
+ node.select(node == selectedNode);
50
+ node.expand(node == selectedNode);
51
+ if (node != selectedNode) {
52
+ node.visit(function(childNode) {
53
+ childNode.select(false);
54
+ });
55
+ }
56
+ }
57
+ });
58
+ }
59
+
60
+ var getTree = function() {
61
+ return $('#raw_info').dynatree('getRoot').tree;
62
+ }
63
+
64
+ $(function() {
65
+ var product = function(organization_id, organization_name, product_name, selected) {
66
+ return { title: product_name, organization_id: organization_id, organization_name: organization_name, product_name: product_name, select: selected };
67
+ }
68
+
69
+ var organization = function(id, name, selected) {
70
+ return { id: id, title: name, expand: selected, key: name, children: [
71
+ { title: 'organization_owner', organization_id: id, select: selected },
72
+ product(id, name, 'mms', selected),
73
+ product(id, name, 'finance', selected),
74
+ product(id, name, 'insight', selected),
75
+ product(id, name, 'planner', selected),
76
+ product(id, name, 'roz', selected)
77
+ ]
78
+ }
79
+ }
80
+
81
+ var organizations = [
82
+ organization(1, 'Centro', true),
83
+ organization(2, 'Test Agency Organization', false),
84
+ organization(3, 'Test Publisher Organization', false),
85
+ ];
86
+
87
+ $("#raw_info").dynatree({
88
+ checkbox: true,
89
+ selectMode: 3,
90
+ children: organizations,
91
+ autoCollapse: true,
92
+ onDblClick: function(node, event) {
93
+ node.toggleSelect();
94
+ },
95
+ onKeydown: function(node, event) {
96
+ if (event.which == 32) {
97
+ node.toggleSelect();
98
+ return false;
99
+ }
100
+ },
101
+ onSelect: function(flag, node) {
102
+ if (flag == true) {
103
+ ensureSingleOrganizationSelected(node);
104
+ }
105
+ }
106
+ });
107
+
108
+ $("form").submit(function() {
109
+ if ($('#email').val() === "") {
110
+ alert("Email is required!");
111
+ return false;
112
+ } else {
113
+ updateRawInfoJsonFromTree();
114
+ return true;
115
+ }
116
+ });
117
+ });
118
+ </script>
119
+
@@ -8,13 +8,7 @@ module OmniAuth
8
8
  end
9
9
 
10
10
  info do
11
- {
12
- :email => raw_info["email"],
13
- :organizations => raw_info['organizations'],
14
- :features => raw_info['features'],
15
- :current_organization_id => raw_info['current_organization_id'],
16
- :raw_info => raw_info
17
- }
11
+ raw_info
18
12
  end
19
13
 
20
14
  def request_phase
@@ -34,71 +28,16 @@ module OmniAuth
34
28
  option :uid_field, :email
35
29
 
36
30
  def request_phase
37
- form = OmniAuth::Form.new(:title => "Centro Developer Login", :url => callback_path, :header_info => <<-HTML)
38
- <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
39
- <script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.8.23/jquery-ui.min.js"></script>
31
+ form = OmniAuth::Form.new(:title => "Centro Developer Login",
32
+ :url => callback_path,
33
+ :header_info => File.read(File.join(File.dirname(__FILE__), "centro.html")))
40
34
 
41
- <link href="http://wwwendt.de/tech/dynatree/src/skin/ui.dynatree.css" rel="stylesheet" type="text/css">
42
- <script src="http://wwwendt.de/tech/dynatree/src/jquery.dynatree.js" type="text/javascript"></script>
43
- <script type="text/javascript">
44
- var updateRawInfoJsonFromTree = function(tree){
45
- var rawInfo = {organizations: [], features: []};
46
- $.each(tree.getSelectedNodes(), function(index, node){
47
- // This is a "Feature" node
48
- if(node.data.key.feature_name){
49
- rawInfo.features.push({organization_id: node.data.key.organization_id, name: node.data.key.feature_name});
50
- // OTherwise if it has an ID it's an organization
51
- }else if(node.data.id){
52
- rawInfo.organizations.push({id: node.data.id, name: node.data.title});
53
- }
54
- });
55
- $('#raw_info_json')[0].value = JSON.stringify(rawInfo);
56
- }
57
- $(function(){
58
- var feature = function(organization_id, organization_name, feature_name, selected){
59
- return {title: feature_name, key: {organization_id: organization_id, organization_name: organization_name, feature_name: feature_name}, select: selected};
60
- }
61
- var organization = function(id, name, selected){
62
- return {id: id, title: name, expand: true, key: name, children: [
63
- feature(id, name,'admin',selected),
64
- feature(id, name,'media_plan_creation',selected),
65
- feature(id, name,'media_plan_negotiation',selected),
66
- feature(id, name,'media_plan_analysis',selected),
67
- feature(id, name,'finance',selected)
68
- ]
69
- }
70
- }
71
- var organizations = [
72
- organization(1, 'Centro',true),
73
- organization(2, 'CentroTestAgency',false),
74
- organization(3, 'CentroTestPublisher',false),
75
- ];
76
- $("#raw_info").dynatree({
77
- checkbox: true,
78
- selectMode: 3,
79
- children: organizations,
80
- onSelect: function(select, node) {
81
- updateRawInfoJsonFromTree(node.tree);
82
- },
83
- onDblClick: function(node, event) {
84
- node.toggleSelect();
85
- },
86
- onKeydown: function(node, event) {
87
- if( event.which == 32 ) {
88
- node.toggleSelect();
89
- return false;
90
- }
91
- },
92
- });
93
- updateRawInfoJsonFromTree($('#raw_info').dynatree('getRoot').tree);
94
- });
95
- </script>
96
- HTML
97
35
  options.fields.each do |field|
98
36
  form.text_field field.to_s.capitalize.gsub("_", " "), field.to_s
99
37
  end
38
+
100
39
  form.html "<input type='hidden' id='raw_info_json' name='raw_info_json' />"
101
- form.html "<h3>Features</h3>"
40
+ form.html "<h3>Membership</h3>"
102
41
  form.html "<div id='raw_info'></div>"
103
42
  form.button "Sign In"
104
43
  form.to_response
@@ -114,7 +53,8 @@ module OmniAuth
114
53
  hash
115
54
  end.merge(
116
55
  :organizations => raw_info['organizations'],
117
- :features => raw_info['features']
56
+ :memberships => raw_info['memberships'],
57
+ :current_organization_id => raw_info['current_organization_id']
118
58
  )
119
59
  end
120
60
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omniauth-centro
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-29 00:00:00.000000000 Z
12
+ date: 2013-08-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: omniauth
@@ -54,6 +54,7 @@ files:
54
54
  - README.md
55
55
  - lib/omniauth-centro.rb
56
56
  - lib/omniauth-centro/version.rb
57
+ - lib/omniauth/strategies/centro.html
57
58
  - lib/omniauth/strategies/centro.rb
58
59
  - omniauth-centro.gemspec
59
60
  homepage: https://github.com/centro/omniauth-centro