@@ -89,7 +89,7 @@ var Gmail = function() {
89
89
var dom = api . dom . inbox_content ( ) ;
90
90
var box = dom . find ( "[gh=tl]" ) . find ( '.nn' ) ;
91
91
92
- return box . length == 0 ;
92
+ return box . length == 0 ;
93
93
}
94
94
95
95
@@ -126,13 +126,13 @@ var Gmail = function() {
126
126
127
127
api . dom . email_subject = function ( ) {
128
128
var e = $ ( ".hP" ) ;
129
-
129
+
130
130
for ( var i = 0 ; i < e . length ; i ++ ) {
131
131
if ( $ ( e [ i ] ) . is ( ':visible' ) ) {
132
132
return $ ( e [ i ] ) ;
133
133
}
134
134
} ;
135
-
135
+
136
136
return $ ( ) ;
137
137
}
138
138
@@ -153,10 +153,10 @@ var Gmail = function() {
153
153
if ( api . get . current_page ( ) != null && ! api . check . is_preview_pane ( ) ) {
154
154
return false ;
155
155
}
156
-
156
+
157
157
var items = $ ( '.ii.gt' ) ;
158
158
var ids = [ ] ;
159
-
159
+
160
160
for ( var i = 0 ; i < items . length ; i ++ ) {
161
161
var mail_id = items [ i ] . getAttribute ( 'class' ) . split ( ' ' ) [ 2 ] ;
162
162
if ( mail_id != 'undefined' && mail_id != undefined ) {
@@ -165,7 +165,7 @@ var Gmail = function() {
165
165
}
166
166
}
167
167
}
168
-
168
+
169
169
return ids . length > 0 ;
170
170
}
171
171
@@ -195,7 +195,7 @@ var Gmail = function() {
195
195
}
196
196
return [ ] ;
197
197
}
198
-
198
+
199
199
api . get . compose_ids = function ( ) {
200
200
var ret = [ ] ;
201
201
var dom = $ ( ".AD [name=draft]" ) ;
@@ -501,7 +501,7 @@ var Gmail = function() {
501
501
502
502
503
503
api . tools . parse_actions = function ( params ) {
504
-
504
+
505
505
if ( params . url . act == 'fup' || params . url . act == 'fuv' || typeof params . body == "object" ) {
506
506
// a way to stop observers when files are being uploaded. See issue #22
507
507
return ;
@@ -545,7 +545,7 @@ var Gmail = function() {
545
545
'poll' : 'poll' ,
546
546
'refresh' : 'refresh' ,
547
547
'rtr' : 'restore_message_in_thread' ,
548
- 'open_email' : 'open_email'
548
+ 'open_email' : 'open_email'
549
549
}
550
550
551
551
if ( typeof params . url . ik == 'string' ) {
@@ -910,6 +910,86 @@ var Gmail = function() {
910
910
}
911
911
912
912
913
+ api . get . displayed_email_data = function ( ) {
914
+ var email_data = api . get . email_data ( ) ;
915
+ var displayed_email_data = { } ;
916
+
917
+ if ( api . check . is_conversation_view ( ) ) {
918
+ displayed_email_data = email_data ;
919
+ }
920
+ else { // Supposing only one displayed email.
921
+ for ( id in email_data . threads ) {
922
+ var displayed_email_element = $ ( '.ii.gt[class*="' + id + '"]' ) ;
923
+
924
+ if ( displayed_email_element . length > 0 ) {
925
+ var thread = email_data . threads [ id ] ;
926
+
927
+ displayed_email_data . first_email = id ;
928
+ displayed_email_data . last_email = id ;
929
+ displayed_email_data . subject = email_data . subject ;
930
+
931
+ displayed_email_data . threads = { } ;
932
+ displayed_email_data . threads [ id ] = thread ;
933
+ displayed_email_data . total_emails = 1 ;
934
+ displayed_email_data . total_threads = [ id ] ;
935
+
936
+ displayed_email_data . people_involved = [ ] ;
937
+
938
+ displayed_email_data . people_involved . push (
939
+ [ thread . from , thread . from_email ]
940
+ ) ;
941
+
942
+ thread . to . forEach ( function ( recipient ) {
943
+ var address = api . tools . extract_email_address ( recipient ) ;
944
+ var name = api . tools . extract_name ( recipient . replace ( address , '' ) ) ;
945
+
946
+ displayed_email_data . people_involved . push (
947
+ [ name , address ]
948
+ ) ;
949
+ } ) ;
950
+
951
+ break ;
952
+ }
953
+ }
954
+ }
955
+
956
+ return displayed_email_data ;
957
+ }
958
+
959
+
960
+ api . check . is_conversation_view = function ( ) {
961
+ var flag = api . tracker . globals [ 17 ] [ 5 ] [ 1 ] [ 57 ] [ 1 ] ;
962
+ var check = undefined ;
963
+
964
+ if ( flag !== undefined ) {
965
+ var values = {
966
+ '0' : true ,
967
+ '1' : false
968
+ }
969
+
970
+ check = values [ flag ] ;
971
+ }
972
+
973
+ return check ;
974
+ }
975
+
976
+
977
+ api . tools . extract_email_address = function ( str ) {
978
+ var regex = / [ \+ a - z 0 - 9 . _ - ] + @ [ a - z 0 - 9 . _ - ] + \. [ a - z 0 - 9 . _ - ] + / gi;
979
+ var matches = ( str ) ? str . match ( regex ) : undefined ;
980
+
981
+ return ( matches ) ? matches [ 0 ] : undefined ;
982
+ }
983
+
984
+
985
+ api . tools . extract_name = function ( str ) {
986
+ var regex = / [ a - z ' . _ - \s ] + / gi;
987
+ var matches = ( str ) ? str . match ( regex ) : undefined ;
988
+
989
+ return ( matches && matches [ 0 ] ) ? matches [ 0 ] . trim ( ) : undefined ;
990
+ }
991
+
992
+
913
993
api . tools . i18n = function ( label ) {
914
994
var locale = api . tracker . globals [ 17 ] [ 9 ] [ 8 ] ;
915
995
var dictionary ;
0 commit comments