Changeset 74d4c7f9 in github
- Timestamp:
- Dec 16, 2011 2:23:04 PM (18 months ago)
- Branches:
- master, HEAD, courier-fix, dev-browser-capabilities, pdo, release-0.8
- Children:
- af05fec
- Parents:
- f94e442
- Files:
-
- 7 added
- 6 edited
-
program/js/app.js (modified) (1 diff)
-
skins/larry/googiespell.css (added)
-
skins/larry/images/buttons.png (modified) (previous)
-
skins/larry/images/googiespell/buttons.png (added)
-
skins/larry/images/googiespell/change_lang.gif (added)
-
skins/larry/images/googiespell/indicator.gif (added)
-
skins/larry/images/googiespell/ok.gif (added)
-
skins/larry/images/googiespell/spellc.gif (added)
-
skins/larry/mail.css (modified) (11 diffs)
-
skins/larry/styles.css (modified) (28 diffs)
-
skins/larry/templates/compose.html (added)
-
skins/larry/templates/mail.html (modified) (1 diff)
-
skins/larry/ui.js (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
-
program/js/app.js
rf94e442 r74d4c7f9 3361 3361 if (this.env.cancelicon) 3362 3362 content = '<a title="'+this.get_label('cancel')+'" onclick="return rcmail.cancel_attachment_upload(\''+ts+'\', \''+frame_name+'\');" href="#cancelupload" class="cancelupload"><img src="'+this.env.cancelicon+'" alt="" /></a>'+content; 3363 this.add2attachment_list(ts, { name:'', html:content, c omplete:false });3363 this.add2attachment_list(ts, { name:'', html:content, classname:'uploading', complete:false }); 3364 3364 3365 3365 // upload progress support -
skins/larry/mail.css
r918bb92 r74d4c7f9 303 303 304 304 .boxlistcontent thead tr td { 305 font-size: 11px;306 305 font-weight: bold; 307 306 background: #d6eaf3; … … 314 313 } 315 314 316 .boxlistcontent thead tr td a { 315 .boxlistcontent thead tr td a, 316 .boxlistcontent thead tr td span { 317 317 display: block; 318 318 padding: 8px 7px; … … 322 322 323 323 .boxlistcontent tbody tr td { 324 font-size: 11px;325 324 padding: 4px 7px; 326 325 border-bottom: 1px solid #ddd; … … 495 494 height: 18px; 496 495 width: 20px; 496 padding: 0; 497 497 background: url(images/listicons.png) -100px 0 no-repeat; 498 498 } … … 628 628 } 629 629 630 #listoptions ul.proplist { 631 min-width: 16em; 632 } 630 633 631 634 /**** message view ****/ … … 656 659 657 660 #messageheader, 658 #partheader { 661 #partheader, 662 #composeheaders { 659 663 position: relative; 660 664 padding: 3px 0; … … 688 692 color: #666; 689 693 padding: 2px 8px; 690 font-size: 11px;691 694 } 692 695 … … 797 800 #message-objects div a.button, 798 801 #messagebody span.part-notice a.button { 799 font-size: 11px;800 802 margin-left: 10px; 801 803 border: 1px solid #ccc; … … 873 875 #attachment-list li { 874 876 display: block; 877 position: relative; 875 878 background: url(images/filetypes.png) 0 0 no-repeat; 876 879 margin-bottom: 1px; … … 908 911 } 909 912 910 911 # attachment-list li a{913 #attachment-list li a, 914 #compose-attachments ul li { 912 915 display: block; 913 916 color: #333; 914 font-size: 11px;915 917 font-weight: bold; 916 918 padding: 8px 4px 3px 30px; 917 text-shadow: 1px 1px 1px #fff;919 text-shadow: 0px 1px 1px #fff; 918 920 text-decoration: none; 919 921 white-space: nowrap; … … 932 934 } 933 935 934 935 936 #messagepartframe { 936 937 border: 0; 937 938 } 939 940 941 /*** message composition ***/ 942 943 #composeview-left { 944 position: absolute; 945 top: 0; 946 left: 0; 947 width: 250px; 948 bottom: 0; 949 } 950 951 #composeview-right { 952 position: absolute; 953 top: 0; 954 left: 262px; 955 right: 0; 956 bottom: 0; 957 } 958 959 #compose-content { 960 position: absolute; 961 top: 42px; 962 left: 0; 963 width: 100%; 964 bottom: 28px; 965 border-bottom-left-radius: 0; 966 border-bottom-right-radius: 0; 967 overflow: hidden; 968 } 969 970 #composeheaders { 971 border-radius: 4px 4px 0 0; 972 -webkit-box-shadow: 0 2px 3px 0 #999; 973 -moz-box-shadow: 0 2px 3px 0 #999; 974 box-shadow: 0 2px 3px 0 #999; 975 } 976 977 #composebuttons { 978 position: absolute; 979 top: 8px; 980 right: 8px; 981 width: auto; 982 white-space: nowrap; 983 z-index: 100; 984 } 985 986 .compose-headers { 987 width: 99%; 988 margin: 4px 0; 989 } 990 991 .compose-headers td { 992 padding: 4px 4px 4px 8px; 993 } 994 995 .compose-headers td.title { 996 width: 11%; 997 white-space: nowrap; 998 } 999 1000 .compose-headers td.title label { 1001 float: left; 1002 } 1003 1004 .compose-headers td.title a.iconbutton { 1005 float: right; 1006 position: relative; 1007 top: -2px; 1008 width: 15px; 1009 } 1010 1011 .compose-headers td.editfield { 1012 width: 90%; 1013 padding-left: 4px; 1014 } 1015 1016 .compose-headers td.editfield a.iconlink { 1017 margin-left: 0.5em; 1018 } 1019 1020 .compose-headers td.formlinks { 1021 padding: 0 4px; 1022 } 1023 1024 .compose-headers td.top { 1025 vertical-align: top; 1026 padding-top: 10px; 1027 } 1028 1029 .compose-headers td textarea, 1030 .compose-headers td input { 1031 width: 100%; 1032 resize: none; 1033 } 1034 1035 #compose-cc, #compose-bcc, #compose-replyto, #compose-followupto { 1036 display: none; 1037 } 1038 1039 #composeoptionsbox { 1040 padding: 4px 8px 0 8px; 1041 background: #d2d2d2; 1042 border-bottom: 1px solid #e8e8e8; 1043 -webkit-box-shadow: 0 2px 3px 0 #999; 1044 -moz-box-shadow: 0 2px 3px 0 #999; 1045 box-shadow: 0 2px 3px 0 #999; 1046 white-space: nowrap; 1047 } 1048 1049 #composeoptions { 1050 display: none; 1051 padding: 2px 0; 1052 white-space: normal; 1053 } 1054 1055 .composeoption { 1056 padding-right: 22px; 1057 white-space: nowrap; 1058 } 1059 1060 #composeoptions .composeoption { 1061 display: inline-block; 1062 padding: 4px 28px 4px 0; 1063 } 1064 1065 #composeoptions .composeoption:last-child { 1066 padding-right: 4px; 1067 } 1068 1069 #composeoptionstoggle { 1070 display: inline-block; 1071 position: relative; 1072 top: -1px; 1073 left: 6px; 1074 width: 20px; 1075 height: 18px; 1076 background: url(images/buttons.png) -3px -418px no-repeat; 1077 text-decoration: none; 1078 } 1079 1080 #composeoptionstoggle.enabled { 1081 background-position: -28px -418px; 1082 } 1083 1084 #composeview-bottom { 1085 position: relative; 1086 width: 100%; 1087 height: 200px; 1088 } 1089 1090 #composebodycontainer { 1091 position: absolute; 1092 top: 0; 1093 left: 0; 1094 right: 260px; 1095 bottom: 0; 1096 } 1097 1098 #composebody { 1099 position: absolute; 1100 top: 24px; 1101 left: 0; 1102 bottom: 0; 1103 width: 99%; 1104 border: 0; 1105 padding: 8px 0 8px 8px; 1106 box-shadow: none; 1107 resize: none; 1108 font-family: monospace; 1109 font-size: 9pt; 1110 } 1111 1112 #compose-attachments { 1113 position: absolute; 1114 right: 0; 1115 top: 0; 1116 bottom: 0; 1117 width: 240px; 1118 background: #f0f0f0; 1119 padding: 8px; 1120 overflow: auto; 1121 } 1122 1123 #attachment-list li.uploading { 1124 background: url(images/ajaxloader.gif) 2px 6px no-repeat; 1125 } 1126 1127 #attachment-list li a.delete, 1128 #attachment-list li a.cancelupload { 1129 position: absolute; 1130 top: 6px; 1131 right: 0; 1132 width: 24px; 1133 height: 18px; 1134 padding: 0; 1135 text-decoration: none; 1136 text-indent: -1000px; 1137 background: url(images/buttons.png) -7px -337px no-repeat; 1138 } 1139 1140 #attachment-list li a.cancelupload { 1141 background-position: -7px -377px; 1142 } 1143 1144 #spellcheck-control { 1145 margin: 6px 8px; 1146 text-align: right; 1147 } 1148 1149 -
skins/larry/styles.css
r2644760 r74d4c7f9 15 15 body { 16 16 font-family: "Lucida Grande", Verdana, Arial, Helvetica, sans-serif; 17 font-size: 1 2px;17 font-size: 11px; 18 18 color: #333; 19 19 background: url(images/linen.jpg) repeat #d1d5d8; … … 67 67 display: inline-block; 68 68 margin: 0 2px; 69 padding: 4px 6px;69 padding: 3px 5px; 70 70 color: #525252; 71 text-shadow: 1px 1px 1px #fff;71 text-shadow: 0px 1px 1px #fff; 72 72 border: 1px solid #c0c0c0; 73 73 border-radius: 4px; … … 88 88 color: #ddd; 89 89 font-size: 110%; 90 text-shadow: 1px 1px 1px #333;90 text-shadow: 0px 1px 1px #333; 91 91 padding: 4px 12px; 92 92 border-color: #465864; … … 98 98 background: -ms-linear-gradient(top, rgba(123,123,123,1) 0%,rgba(96,96,96,1) 100%); /* IE10+ */ 99 99 background: linear-gradient(top, rgba(123,123,123,1) 0%,rgba(96,96,96,1) 100%); /* W3C */ 100 box-shadow: 0 1px 1px 0 #ccc, inset 0 1px 0 0 #888; 101 -o-box-shadow: 0 1px 1px 0 #ccc, inset 0 1px 0 0 #888; 102 -webkit-box-shadow: 0 1px 1px 0 #ccc, inset 0 1px 0 0 #888; 103 -moz-box-shadow: 0 1px 1px 0 #ccc, inset 0 1px 0 0 #888; 100 104 } 101 105 102 106 .formbuttons input.button:hover { 103 107 color: #f2f2f2; 104 box-shadow: 0 0 5px 2px rgba(71,135,177, 0.6) ;105 -moz-box-shadow: 0 0 5px 2px rgba(71,135,177, 0.6) ;106 -webkit-box-shadow: 0 0 5px 2px rgba(71,135,177, 0.6) ;107 -o-box-shadow: 0 0 5px 2px rgba(71,135,177, 0.6) ;108 box-shadow: 0 0 5px 2px rgba(71,135,177, 0.6), inset 0 1px 0 0 #888; 109 -moz-box-shadow: 0 0 5px 2px rgba(71,135,177, 0.6), inset 0 1px 0 0 #888; 110 -webkit-box-shadow: 0 0 5px 2px rgba(71,135,177, 0.6), inset 0 1px 0 0 #888; 111 -o-box-shadow: 0 0 5px 2px rgba(71,135,177, 0.6), inset 0 1px 0 0 #888; 108 112 } 109 113 … … 130 134 input.button.mainaction:active { 131 135 color: #fff; 132 background: rgba(42,46,49,1);133 background: -moz-linear-gradient(top, rgba(42,46,49,1) 0%, rgba(80,80,80,1)100%);134 background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, rgba(42,46,49,1)), color-stop(100%,rgba(80,80,80,1)));135 background: -o-linear-gradient(top, rgba(42,46,49,1) 0%,rgba(80,80,80,1)100%);136 background: -ms-linear-gradient(top, rgba(42,46,49,1) 0%,rgba(80,80,80,1)100%);137 background: linear-gradient(top, rgba(42,46,49,1) 0%,rgba(80,80,80,1)100%);136 background: #515151; 137 background: -moz-linear-gradient(top, #515151 0%, #2c2c2c 100%); 138 background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#515151), color-stop(100%,#2c2c2c)); 139 background: -o-linear-gradient(top, #515151 0%, #2c2c2c 100%); 140 background: -ms-linear-gradient(top, #515151 0%, #2c2c2c 100%); 141 background: linear-gradient(top, #515151 0%, #2c2c2c 100%); 138 142 } 139 143 … … 155 159 padding: 2px 5px; 156 160 color: #525252; 157 text-shadow: 1px 1px 1px #fff;161 text-shadow: 0px 1px 1px #fff; 158 162 border: 1px solid #c6c6c6; 159 163 border-radius: 4px; … … 171 175 } 172 176 177 label.disabled, 173 178 a.button.disabled { 174 179 color: #999; … … 258 263 display: inline-block; 259 264 padding:0 0.5em; 260 font-size: 11px; 261 text-shadow: 1px 1px 1px #fff; 265 text-shadow: 0px 1px 1px #fff; 262 266 min-width: 20em; 263 267 } … … 278 282 279 283 a.iconbutton.searchoptions { 280 background-position: -2px -3 37px;284 background-position: -2px -317px; 281 285 } 282 286 283 287 a.iconbutton.reset { 284 background-position: -25px -337px; 285 } 286 288 background-position: -25px -317px; 289 } 290 291 a.iconbutton.cancel { 292 background-position: -7px -377px; 293 } 294 295 a.iconlink { 296 display: inline-block; 297 color: #888; 298 text-decoration: none; 299 padding: 2px 8px 2px 20px; 300 background: url(images/buttons.png) -1000px 0 no-repeat; 301 } 302 303 a.iconlink:hover { 304 text-decoration: underline; 305 } 306 307 a.iconlink.add { 308 background-position: -7px -357px; 309 } 310 311 a.iconlink.edit { 312 background-position: -7px -397px; 313 } 287 314 288 315 /*** message bar ***/ … … 350 377 border-bottom: 1px solid #4f4f4f; 351 378 padding: 2px 0 2px 10px; 352 font-size: 11px;353 379 color: #aaa; 354 380 } … … 424 450 font-size: 110%; 425 451 font-weight: normal; 426 text-shadow: 1px 1px 1px black;452 text-shadow: 0px 1px 1px black; 427 453 padding: 5px 0 0 34px; 428 454 height: 19px; … … 544 570 padding: 10px 8px 8px 8px; 545 571 margin: 0; 546 text-shadow: 1px 1px 1px #fff;572 text-shadow: 0px 1px 1px #fff; 547 573 border-bottom: 1px solid #bbd3da; 548 574 white-space: nowrap; … … 561 587 .listing li { 562 588 display: block; 563 font-size: 11px;564 589 border-top: 1px solid #fff; 565 590 border-bottom: 1px solid #bbd3da; … … 574 599 display: block; 575 600 color: #376572; 576 text-shadow: 1px 1px 1px #fff;601 text-shadow: 0px 1px 1px #fff; 577 602 text-decoration: none; 578 603 cursor: default; … … 609 634 } 610 635 611 table.listing { 636 table.listing, 637 table.layout { 638 border: 0; 612 639 width: 100%; 613 640 border-spacing: 0; 641 } 642 643 table.layout td { 644 vertical-align: top; 614 645 } 615 646 … … 735 766 } 736 767 768 fieldset.floating { 769 float: left; 770 margin-right: 10px; 771 margin-bottom: 10px; 772 } 773 737 774 table.propform { 738 775 width: 100%; … … 741 778 } 742 779 780 ul.proplist li, 743 781 table.propform td { 744 782 width: 80%; … … 758 796 padding: 0; 759 797 border-bottom: 0; 798 } 799 800 ul.proplist { 801 list-style: none; 802 margin: 0; 803 padding: 0; 804 } 805 806 ul.proplist li { 807 width: auto; 760 808 } 761 809 … … 800 848 #login-form input.button { 801 849 color: #444; 802 text-shadow: 1px 1px 1px #fff;850 text-shadow: 0px 1px 1px #fff; 803 851 border-color: #f9f9f9; 804 852 background: #f9f9f9; … … 821 869 #login-form td.title { 822 870 color: #cecece; 823 text-shadow: 1px 1px 1px black;871 text-shadow: 0px 1px 1px black; 824 872 text-align: right; 825 873 padding-right: 1em; … … 894 942 white-space: nowrap; 895 943 padding: 28px 2px 2px 2px; 896 text-shadow: 1px 1px 1px #eee;944 text-shadow: 0px 1px 1px #eee; 897 945 box-shadow: none; 898 946 -moz-box-shadow: none; … … 972 1020 } 973 1021 1022 .toolbar a.button.attach { 1023 background-position: center -890px; 1024 } 1025 1026 .toolbar a.button.spellcheck { 1027 background-position: center -930px; 1028 } 1029 1030 974 1031 /*** popup menus ***/ 975 1032 976 .popupmenu { 1033 .popupmenu, 1034 #rcmKSearchpane { 977 1035 display: none; 978 1036 position: absolute; … … 990 1048 } 991 1049 992 ul.toolbarmenu { 1050 ul.toolbarmenu, 1051 #rcmKSearchpane ul { 993 1052 margin: 0; 994 1053 padding: 0; … … 996 1055 } 997 1056 998 ul.toolbarmenu li { 1057 .googie_list td, 1058 ul.toolbarmenu li, 1059 #rcmKSearchpane ul li { 999 1060 color: #fff; 1000 font-size: 11px;1001 1061 white-space: nowrap; 1002 1062 min-width: 130px; … … 1006 1066 } 1007 1067 1068 .googie_list tr:first-child td, 1008 1069 ul.toolbarmenu li:first-child { 1009 1070 border-top: 0; 1010 1071 } 1011 1072 1073 .googie_list tr:last-child td, 1012 1074 ul.toolbarmenu li:last-child { 1013 1075 border-bottom: 0; 1014 1076 } 1015 1077 1078 .googie_list td span, 1016 1079 ul.toolbarmenu li a { 1017 1080 display: block; 1018 1081 color: #666; 1019 text-shadow: 1px 1px 1px #333;1082 text-shadow: 0px 1px 1px #333; 1020 1083 text-decoration: none; 1021 1084 min-height: 14px; … … 1023 1086 } 1024 1087 1088 .googie_list td span, 1025 1089 ul.toolbarmenu li a.active { 1026 1090 color: #fff; 1027 } 1028 1029 ul.toolbarmenu li a.active:hover { 1091 cursor: default; 1092 } 1093 1094 .googie_list td.googie_list_onhover, 1095 ul.toolbarmenu li a.active:hover, 1096 #rcmKSearchpane ul li.selected { 1030 1097 background-color: #00aad6; 1031 1098 background: -moz-linear-gradient(top, #00aad6 0%, #008fc9 100%); … … 1044 1111 color: #fff; 1045 1112 padding: 4px 8px; 1046 text-shadow: 1px 1px 1px #333; 1113 text-shadow: 0px 1px 1px #333; 1114 } 1115 1116 #rcmKSearchpane { 1117 border-radius: 0 0 4px 4px; 1118 border-top: 0; 1119 } 1120 1121 #rcmKSearchpane ul li { 1122 text-shadow: 0px 1px 1px #333; 1123 text-decoration: none; 1124 min-height: 14px; 1125 padding: 6px 10px 6px 10px; 1126 border: 0; 1127 } 1128 1129 .popupdialog { 1130 display: none; 1131 padding: 10px; 1132 } 1133 1134 .popupdialog .formbuttons { 1135 margin: 20px 0 4px 0; 1136 } 1137 1138 .hint { 1139 margin: 4px 0; 1140 color: #999; 1141 text-shadow: 0px 1px 1px #fff; 1047 1142 } 1048 1143 … … 1085 1180 z-index: 250; 1086 1181 color: #ccc; 1087 font-size: 11px;1088 1182 white-space: nowrap; 1089 1183 opacity: 0.92; 1090 text-shadow: 1px 1px 1px #333;1184 text-shadow: 0px 1px 1px #333; 1091 1185 } 1092 1186 -
skins/larry/templates/mail.html
r918bb92 r74d4c7f9 128 128 </div> 129 129 130 131 <div id="listoptions" class="popupdialog"> 132 130 <div id="listoptions" class="propform popupdialog"> 131 <roundcube:if condition="!in_array('list_cols', (array)config:dont_override)" /> 132 <fieldset class="floating"> 133 <legend><roundcube:label name="listcolumns" /></legend> 134 <ul class="proplist"> 135 <li><label class="disabled"><input type="checkbox" name="list_col[]" value="threads" checked="checked" disabled="disabled" /> <roundcube:label name="threads" /></label></li> 136 <li><label class="disabled"><input type="checkbox" name="list_col[]" value="subject" checked="checked" disabled="disabled" /> <roundcube:label name="subject" /></label></li> 137 <li><label><input type="checkbox" name="list_col[]" value="from" /> <roundcube:label name="fromto" /></label></li> 138 <li><label><input type="checkbox" name="list_col[]" value="replyto" /> <roundcube:label name="replyto" /></label></li> 139 <li><label><input type="checkbox" name="list_col[]" value="cc" /> <roundcube:label name="cc" /></label></li> 140 <li><label><input type="checkbox" name="list_col[]" value="date" /> <roundcube:label name="date" /></label></li> 141 <li><label><input type="checkbox" name="list_col[]" value="size" /> <roundcube:label name="size" /></label></li> 142 <li><label><input type="checkbox" name="list_col[]" value="status" /> <roundcube:label name="readstatus" /></label></li> 143 <li><label><input type="checkbox" name="list_col[]" value="attachment" /> <roundcube:label name="attachment" /></label></li> 144 <li><label><input type="checkbox" name="list_col[]" value="flag" /> <roundcube:label name="flag" /></label></li> 145 <li><label><input type="checkbox" name="list_col[]" value="priority" /> <roundcube:label name="priority" /></label></li> 146 </ul> 147 </fieldset> 148 <roundcube:endif /> 149 <roundcube:if condition="!in_array('message_sort_col', (array)config:dont_override)" /> 150 <fieldset class="floating"> 151 <legend><roundcube:label name="listsorting" /></legend> 152 <ul class="proplist"> 153 <li><label><input type="radio" name="sort_col" value="" /> <roundcube:label name="nonesort" /></label></li> 154 <li><label><input type="radio" name="sort_col" value="arrival" /> <roundcube:label name="arrival" /></label></li> 155 <li><label><input type="radio" name="sort_col" value="date" /> <roundcube:label name="sentdate" /></label></li> 156 <li><label><input type="radio" name="sort_col" value="subject" /> <roundcube:label name="subject" /></label></li> 157 <li><label><input type="radio" name="sort_col" value="from" /> <roundcube:label name="fromto" /></label></li> 158 <li><label><input type="radio" name="sort_col" value="cc" /> <roundcube:label name="cc" /></label></li> 159 <li><label><input type="radio" name="sort_col" value="size" /> <roundcube:label name="size" /></label></li> 160 </ul> 161 </fieldset> 162 <roundcube:endif /> 163 <roundcube:if condition="!in_array('message_sort_order', (array)config:dont_override)" /> 164 <fieldset class="floating"> 165 <legend><roundcube:label name="listorder" /></legend> 166 <ul class="proplist"> 167 <li><label><input type="radio" name="sort_ord" value="ASC" /> <roundcube:label name="asc" /></label></li> 168 <li><label><input type="radio" name="sort_ord" value="DESC" /> <roundcube:label name="desc" /></label></li> 169 </ul> 170 </fieldset> 171 <roundcube:endif /> 172 <br style="clear:both" /> 173 <div class="formbuttons"> 174 <roundcube:button command="menu-save" id="listmenusave" type="input" class="button mainaction" label="save" /> 175 <roundcube:button command="menu-open" id="listmenucancel" type="input" class="button" label="cancel" /> 176 </div> 133 177 </div> 134 178 -
skins/larry/ui.js
r918bb92 r74d4c7f9 1 1 /** 2 2 * Roundcube functions for default skin interface 3 * 4 * Copyright (c) 2011, The Roundcube Dev Team 5 * 6 * The contents are subject to the Creative Commons Attribution-ShareAlike 7 * License. It is allowed to copy, distribute, transmit and to adapt the work 8 * by keeping credits to the original autors in the README file. 9 * See http://creativecommons.org/licenses/by-sa/3.0/ for details. 10 * 11 * $Id$ 3 12 */ 4 13 … … 22 31 var me = this; 23 32 var mailviewsplit; 33 var compose_headers = {}; 24 34 25 35 // export public methods … … 27 37 this.show_popup = show_popup; 28 38 this.set_searchmod = set_searchmod; 39 this.show_uploadform = show_uploadform; 40 this.show_header_row = show_header_row; 41 this.hide_header_row = hide_header_row; 29 42 30 43 /** … … 34 47 { 35 48 if (rcmail.env.task == 'mail') { 36 rcmail.gui_object('message_dragmenu', 'dragmessagemenu'); 37 rcmail.addEventListener('menu-open', function(){ show_popup('listoptions'); }); 49 rcmail.addEventListener('menu-open', show_listoptions); 38 50 rcmail.addEventListener('menu-save', save_listoptions); 39 // rcmail.addEventListener('aftersend-attachment', 'uploadmenu', rcmail_ui); 40 // rcmail.addEventListener('aftertoggle-editor', 'resize_compose_body_ev', rcmail_ui); 51 rcmail.addEventListener('aftersend-attachment', show_uploadform); 52 rcmail.addEventListener('aftertoggle-editor', function(){ window.setTimeout(function(){ layout_composeview() }, 100); }); 53 54 var dragmenu = $('#dragmessagemenu'); 55 if (dragmenu.length) { 56 rcmail.gui_object('message_dragmenu', 'dragmessagemenu'); 57 popups.dragmessagemenu = dragmenu; 58 } 41 59 42 60 var previewframe = $('#mailpreviewframe').is(':visible'); … … 47 65 if (rcmail.env.action == 'show' || rcmail.env.action == 'preview') { 48 66 layout_messageview(); 67 } 68 else if (rcmail.env.action == 'compose') { 69 layout_composeview(); 70 71 $('#composeoptionstoggle').click(function(){ 72 $(this).toggleClass('enabled'); 73 $('#composeoptions').toggle(); 74 layout_composeview(); 75 return false; 76 }); 77 78 new rcube_splitter({ id:'composesplitterv', p1:'#composeview-left', p2:'#composeview-right', 79 orientation:'v', relative:true, start:248, min:150, size:12 }).init(); 49 80 } 50 81 else if (rcmail.env.action == 'list' || !rcmail.env.action) { … … 114 145 layout_messageview(); 115 146 } 147 if (rcmail.env.task == 'mail' && rcmail.env.action == 'compose') { 148 layout_composeview(); 149 } 116 150 } 117 151 … … 140 174 if (splitter) 141 175 $('#quicksearchbar input').css('width', (splitter.pos - 70) + 'px'); 176 } 177 178 179 function layout_composeview() 180 { 181 var body = $('#composebody'), 182 bottom = $('#composeview-bottom'), 183 w, h; 184 185 bottom.css('height', (bottom.parent().height() - bottom.position().top) + 'px'); 186 187 w = body.parent().width() - 8; 188 h = body.parent().height() - 36; 189 body.width(w).height(h); 190 191 if (window.tinyMCE && tinyMCE.get('composebody')) { 192 $('#composebody_tbl').width((w+6)+'px').height(''); 193 $('#composebody_ifr').width((w+6)+'px').height((h-54)+'px'); 194 } 195 else { 196 $('#googie_edit_layer').height(h+'px'); 197 } 142 198 } 143 199 … … 321 377 * 322 378 */ 379 function show_listoptions() 380 { 381 var $dialog = $('#listoptions'); 382 383 // close the dialog 384 if ($dialog.is(':visible')) { 385 $dialog.dialog('close'); 386 return; 387 } 388 389 // set form values 390 $('input[name="sort_col"][value="'+rcmail.env.sort_col+'"]').prop('checked', true); 391 $('input[name="sort_ord"][value="DESC"]').prop('checked', rcmail.env.sort_order == 'DESC'); 392 $('input[name="sort_ord"][value="ASC"]').prop('checked', rcmail.env.sort_order != 'DESC'); 393 $('input[name="view"][value="thread"]').prop('checked', rcmail.env.threading ? true : false); 394 $('input[name="view"][value="list"]').prop('checked', rcmail.env.threading ? false : true); 395 396 // list columns 397 var found, cols = $('input[name="list_col[]"]'); 398 for (var i=0; i < cols.length; i++) { 399 if (cols[i].value != 'from') { 400 found = $.inArray(cols[i].value, rcmail.env.coltypes) != -1; 401 } 402 else { 403 found = ($.inArray('from', rcmail.env.coltypes) != -1 404 || $.inArray('to', rcmail.env.coltypes) != -1); 405 } 406 $(cols[i]).prop('checked', found); 407 } 408 409 $dialog.dialog({ 410 modal: true, 411 resizable: false, 412 closeOnEscape: true, 413 title: null, 414 close: function() { 415 $dialog.dialog('destroy').hide(); 416 }, 417 width: 650 418 }).show(); 419 } 420 421 422 /** 423 * 424 */ 323 425 function save_listoptions() 324 426 { 325 show_popupmenu('listoptions', false);427 $('#listoptions').dialog('close'); 326 428 327 429 var sort = $('input[name="sort_col"]:checked').val(), … … 381 483 } 382 484 }); 485 } 486 487 488 function show_uploadform() 489 { 490 var $dialog = $('#upload-dialog'); 491 492 // close the dialog 493 if ($dialog.is(':visible')) { 494 $dialog.dialog('close'); 495 return; 496 } 497 498 $dialog.dialog({ 499 modal: true, 500 resizable: false, 501 closeOnEscape: true, 502 title: $dialog.attr('title'), 503 close: function() { 504 try { $('#upload-dialog form').get(0).reset(); } 505 catch(e){ } // ignore errors 506 507 $dialog.dialog('destroy').hide(); 508 }, 509 width: 480 510 }).show(); 511 512 if (!document.all) 513 $('input[type=file]', $dialog).click(); 514 } 515 516 /** 517 * 518 */ 519 function show_header_row(which) 520 { 521 if (compose_headers[which]) 522 $('#_' + which).val(compose_headers[which]); 523 $('#compose-' + which).show(); 524 $('#' + which + '-link').hide(); 525 this.resize_compose_body(); 526 return false; 527 } 528 529 /** 530 * 531 */ 532 function hide_header_row(which) 533 { 534 // copy and clear field value 535 var field = $('#_' + which); 536 compose_headers[which] = field.val(); 537 field.val(''); 538 539 $('#compose-' + which).hide(); 540 $('#' + which + '-link').show(); 541 this.resize_compose_body(); 383 542 } 384 543 }
Note: See TracChangeset
for help on using the changeset viewer.
