From 62bc8bcb0414c3b0d4aa11a29b19115d8ab618ae Mon Sep 17 00:00:00 2001 From: Klaus Leithoff Date: Mon, 3 May 2010 14:24:07 +0000 Subject: [PATCH] feature to allow copying mails to other folders, (configure via prefs -> ask for cofirmation before moving selected messages), using DIALOG BOXES by Michael Leigeber; --- felamimail/inc/class.ajaxfelamimail.inc.php | 36 ++++ felamimail/inc/class.bofelamimail.inc.php | 20 +- felamimail/inc/class.felamimail_hooks.inc.php | 10 +- felamimail/inc/class.uifelamimail.inc.php | 8 +- felamimail/js/jscode/viewMainScreen.js | 203 +++++++++++++++++- felamimail/templates/default/app.css | 19 +- .../templates/default/images/dialog_close.gif | Bin 0 -> 64 bytes .../templates/default/images/error_bg.jpg | Bin 0 -> 2908 bytes .../templates/default/images/error_header.gif | Bin 0 -> 151 bytes .../templates/default/images/overlay.png | Bin 0 -> 137 bytes .../templates/default/images/prompt_bg.jpg | Bin 0 -> 2864 bytes .../default/images/prompt_header.gif | Bin 0 -> 150 bytes .../templates/default/images/success_bg.jpg | Bin 0 -> 2772 bytes .../default/images/success_header.gif | Bin 0 -> 150 bytes .../templates/default/images/warning_bg.jpg | Bin 0 -> 2685 bytes .../default/images/warning_header.gif | Bin 0 -> 151 bytes felamimail/templates/default/mainscreen.tpl | 9 +- felamimail/templates/jerryr/app.css | 19 +- felamimail/templates/jerryr/mainscreen.tpl | 7 +- 19 files changed, 302 insertions(+), 29 deletions(-) create mode 100644 felamimail/templates/default/images/dialog_close.gif create mode 100644 felamimail/templates/default/images/error_bg.jpg create mode 100644 felamimail/templates/default/images/error_header.gif create mode 100644 felamimail/templates/default/images/overlay.png create mode 100644 felamimail/templates/default/images/prompt_bg.jpg create mode 100644 felamimail/templates/default/images/prompt_header.gif create mode 100644 felamimail/templates/default/images/success_bg.jpg create mode 100644 felamimail/templates/default/images/success_header.gif create mode 100644 felamimail/templates/default/images/warning_bg.jpg create mode 100644 felamimail/templates/default/images/warning_header.gif diff --git a/felamimail/inc/class.ajaxfelamimail.inc.php b/felamimail/inc/class.ajaxfelamimail.inc.php index 30aa330427..87400af9d9 100644 --- a/felamimail/inc/class.ajaxfelamimail.inc.php +++ b/felamimail/inc/class.ajaxfelamimail.inc.php @@ -665,6 +665,42 @@ } } + /* + * copy messages to another folder + * + * @param string _folder name of the target folder + * @param array _selectedMessages UID's of the messages to copy + * + * @return xajax response + */ + function copyMessages($_folderName, $_selectedMessages) + { + if($this->_debug) error_log(__METHOD__." called with Messages ".print_r($_selectedMessages,true)); + $messageCount = 0; + if(is_array($_selectedMessages) && count($_selectedMessages['msg']) > 0) $messageCount = count($_selectedMessages['msg']); + $folderName = $this->_decodeEntityFolderName($_folderName); + if ($_selectedMessages == 'all' || !empty( $_selectedMessages['msg']) && !empty($folderName)) { + if ($this->sessionData['mailbox'] != $folderName) + { + $deleteAfterMove = false; + $this->bofelamimail->moveMessages($folderName, ($_selectedMessages == 'all'? null:$_selectedMessages['msg']),$deleteAfterMove); + } + else + { + if($this->_debug) error_log("ajaxfelamimail::copyMessages-> same folder than current selected"); + } + + return $this->generateMessageList($this->sessionData['mailbox'],($_selectedMessages == 'all'?0:(-1*$messageCount))); + } else { + $response = new xajaxResponse(); + $response->addScript('resetMessageSelect();'); + $response->addScript('tellUser("'.lang('No messages selected, or lost selection. Changing to folder ').'","'.$_folderName.'");'); + $response->addScript('onNodeSelect("'.$_folderName.'");'); + return $response->getXML(); + + } + } + function quickSearch($_searchType, $_searchString, $_status) { // save the filter diff --git a/felamimail/inc/class.bofelamimail.inc.php b/felamimail/inc/class.bofelamimail.inc.php index d35446cefe..6a5d902aa5 100644 --- a/felamimail/inc/class.bofelamimail.inc.php +++ b/felamimail/inc/class.bofelamimail.inc.php @@ -2501,7 +2501,7 @@ } } - function moveMessages($_foldername, $_messageUID) + function moveMessages($_foldername, $_messageUID, $deleteAfterMove=true) { $msglist = ''; @@ -2511,15 +2511,19 @@ return false; } // mark messages as deleted - if ( PEAR::isError($this->icServer->deleteMessages($_messageUID, true))) { - return false; - } + if ($deleteAfterMove === true) + { + if ( PEAR::isError($this->icServer->deleteMessages($_messageUID, true))) + { + return false; + } - if($deleteOptions != "mark_as_deleted") { - // delete the messages finaly - $this->icServer->expunge(); + if($deleteOptions != "mark_as_deleted") + { + // delete the messages finaly + $this->icServer->expunge(); + } } - return true; } diff --git a/felamimail/inc/class.felamimail_hooks.inc.php b/felamimail/inc/class.felamimail_hooks.inc.php index ec0ee9d6a7..9fc201c3f1 100644 --- a/felamimail/inc/class.felamimail_hooks.inc.php +++ b/felamimail/inc/class.felamimail_hooks.inc.php @@ -83,6 +83,7 @@ class felamimail_hooks '0' => lang('no'), '1' => lang('yes') ); + $no_yes_copy = array_merge($no_yes,array('2'=>lang('yes, offer copy option'))); $prefAllowManageFolders = $no_yes; @@ -102,10 +103,9 @@ class felamimail_hooks '6' => lang('size(...->0)') ); - $selectOptions = array( - '0' => lang('no'), - '1' => lang('yes'), - '2' => lang('yes') . ' - ' . lang('small view') + $selectOptions = array_merge( + $no_yes, + array('2' => lang('yes') . ' - ' . lang('small view')) ); $newWindowOptions = array( @@ -184,7 +184,7 @@ class felamimail_hooks 'type' => 'select', 'label' => 'Do you want to be asked for confirmation before moving selected messages to another folder?', 'name' => 'prefaskformove', - 'values' => $no_yes, + 'values' => $no_yes_copy, 'xmlrpc' => True, 'admin' => False, 'forced' => '1', diff --git a/felamimail/inc/class.uifelamimail.inc.php b/felamimail/inc/class.uifelamimail.inc.php index 4068eab64f..4b4c633411 100644 --- a/felamimail/inc/class.uifelamimail.inc.php +++ b/felamimail/inc/class.uifelamimail.inc.php @@ -620,6 +620,7 @@ $this->t->set_var('refreshTime',$refreshTime*60*1000); // other settings $prefaskformove = intval($userPreferences['prefaskformove']) ? intval($userPreferences['prefaskformove']) : 0; + $this->t->set_var('prefaskformove',$prefaskformove); #// set the url to open when refreshing #$linkData = array @@ -974,7 +975,12 @@ $this->t->set_var('lang_open_all',lang("open all")); $this->t->set_var('lang_close_all',lang("close all")); $this->t->set_var('lang_moving_messages_to',lang('moving messages to')); - $this->t->set_var('lang_askformove',lang('Do you really want to move the selected messages to folder:')); + $this->t->set_var('lang_copying_messages_to',lang('copying messages to')); + $this->t->set_var('lang_MoveCopyTitle',($GLOBALS['egw_info']['user']['preferences']['felamimail']['prefaskformove']==2?lang('Copy or Move Messages?'):lang('Move Messages?'))); + $this->t->set_var('lang_askformove',($GLOBALS['egw_info']['user']['preferences']['felamimail']['prefaskformove']==2?lang('Do you really want to move or copy the selected messages to folder:'):lang('Do you really want to move the selected messages to folder:'))); + $this->t->set_var('lang_move',lang("Move")); + $this->t->set_var('lang_copy',lang("Copy")); + $this->t->set_var('lang_cancel',lang("Cancel")); $this->t->set_var('lang_mark_all_messages',lang('all messages in folder')); $this->t->set_var('lang_confirm_all_messages',lang('The action will be applied to all messages of the current folder.\nDo you want to proceed?')); $this->t->set_var('lang_empty_trash',lang('empty trash')); diff --git a/felamimail/js/jscode/viewMainScreen.js b/felamimail/js/jscode/viewMainScreen.js index 32e5dabd0b..82dc259ad5 100644 --- a/felamimail/js/jscode/viewMainScreen.js +++ b/felamimail/js/jscode/viewMainScreen.js @@ -121,12 +121,53 @@ function OnLoadingStart(_nodeID) { // alert(_nodeID); //} +function callNodeSelect(_nodeIDfc, mode) { +//alert("callNodeSelect:"+_nodeIDfc); + var buff = prefAskForMove; + if (mode == 0) // cancel + { + prefAskForMove = 0; + CopyOrMove = false; + onNodeSelect(_nodeIDfc); + } + if (mode == 1) // move + { + prefAskForMove = 0; + CopyOrMove = true; + onNodeSelect(_nodeIDfc); + } + if (mode == 2) // copy + { + prefAskForMove = 99; + CopyOrMove = true; + onNodeSelect(_nodeIDfc); + } + prefAskForMove = buff; + CopyOrMove = true; + return true; +} + function onNodeSelect(_nodeID) { -//alert(_nodeID) - var Check = true; +//alert("onNodeSelect:"+_nodeID); + var Check = CopyOrMove; + var actionPending = false; if(tree.getUserData(_nodeID, 'folderName')) { if(document.getElementsByName("folderAction")[0].value == "moveMessage") { - if (prefAskForMove == 1) Check = confirm(lang_askformove + tree.getUserData(_nodeID, 'folderName')); + if (prefAskForMove == 1 || prefAskForMove == 2) + { + //Check = confirm(lang_askformove + tree.getUserData(_nodeID, 'folderName')); + title = lang_MoveCopyTitle; + message = lang_askformove + tree.getUserData(_nodeID, 'folderName'); + message = message + "

"; + if (prefAskForMove == 2) message = message + " "; + message = message + " "; + type = 'prompt'; + autohide = 0; + showDialog(title,message,type,autohide); + Check = false; + actionPending = true; + } + if (prefAskForMove==99) actionPending = 'copy'; if (Check == true && document.getElementById('selectAllMessagesCheckBox').checked == true) Check = confirm(lang_confirm_all_messages); if (Check == true) { @@ -138,14 +179,27 @@ function onNodeSelect(_nodeID) { resetMessageSelect(); formData = xajax.getFormValues('formMessageList'); } - setStatusMessage(movingMessages +' '+ tree.getUserData(_nodeID, 'folderName') +''); - document.getElementById('divMessageList').innerHTML = ''; - xajax_doXMLHTTP("felamimail.ajaxfelamimail.moveMessages", _nodeID, formData); + if (actionPending == 'copy') + { + setStatusMessage(copyingMessages +' '+ tree.getUserData(_nodeID, 'folderName') +''); + document.getElementById('divMessageList').innerHTML = ''; + xajax_doXMLHTTP("felamimail.ajaxfelamimail.copyMessages", _nodeID, formData); + } + else + { + // default: move messages + setStatusMessage(movingMessages +' '+ tree.getUserData(_nodeID, 'folderName') +''); + document.getElementById('divMessageList').innerHTML = ''; + xajax_doXMLHTTP("felamimail.ajaxfelamimail.moveMessages", _nodeID, formData); + } } else { - resetMessageSelect(); - for(i=0; i< document.forms.formMessageList.elements.length; i++) { - if(document.forms.formMessageList.elements[i].checked) { - document.forms.formMessageList.elements[i].checked = false; + if (actionPending == false) + { + resetMessageSelect(); + for(i=0; i< document.forms.formMessageList.elements.length; i++) { + if(document.forms.formMessageList.elements[i].checked) { + document.forms.formMessageList.elements[i].checked = false; + } } } } @@ -157,6 +211,7 @@ function onNodeSelect(_nodeID) { refreshFolderStatus(_nodeID); } } + CopyOrMove = true; } function quickSearch() { @@ -479,3 +534,131 @@ function changeActiveAccount(_accountSelection) xajax_doXMLHTTP('felamimail.ajaxfelamimail.changeActiveAccount',_accountSelection.value); } +// DIALOG BOXES by Michael Leigeber +// global variables // +var TIMER = 5; +var SPEED = 10; +var WRAPPER = 'divPoweredBy'; + +// calculate the current window width // +function pageWidth() { + return window.innerWidth != null ? window.innerWidth : document.documentElement && document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body != null ? document.body.clientWidth : null; +} + +// calculate the current window height // +function pageHeight() { + return window.innerHeight != null? window.innerHeight : document.documentElement && document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body != null? document.body.clientHeight : null; +} + +// calculate the current window vertical offset // +function topPosition() { + return typeof window.pageYOffset != 'undefined' ? window.pageYOffset : document.documentElement && document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ? document.body.scrollTop : 0; +} + +// calculate the position starting at the left of the window // +function leftPosition() { + return typeof window.pageXOffset != 'undefined' ? window.pageXOffset : document.documentElement && document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ? document.body.scrollLeft : 0; +} + +// build/show the dialog box, populate the data and call the fadeDialog function // +function showDialog(title,message,type,autohide) { + if(!type) { + type = 'error'; + } + var dialog; + var dialogheader; + var dialogclose; + var dialogtitle; + var dialogcontent; + var dialogmask; + if(!document.getElementById('dialog')) { + dialog = document.createElement('div'); + dialog.id = 'dialog'; + dialogheader = document.createElement('div'); + dialogheader.id = 'dialog-header'; + dialogtitle = document.createElement('div'); + dialogtitle.id = 'dialog-title'; + dialogclose = document.createElement('div'); + dialogclose.id = 'dialog-close' + dialogcontent = document.createElement('div'); + dialogcontent.id = 'dialog-content'; + dialogmask = document.createElement('div'); + dialogmask.id = 'dialog-mask'; + document.body.appendChild(dialogmask); + document.body.appendChild(dialog); + dialog.appendChild(dialogheader); + dialogheader.appendChild(dialogtitle); + dialogheader.appendChild(dialogclose); + dialog.appendChild(dialogcontent);; + dialogclose.setAttribute('onclick','hideDialog()'); + dialogclose.onclick = hideDialog; + } else { + dialog = document.getElementById('dialog'); + dialogheader = document.getElementById('dialog-header'); + dialogtitle = document.getElementById('dialog-title'); + dialogclose = document.getElementById('dialog-close'); + dialogcontent = document.getElementById('dialog-content'); + dialogmask = document.getElementById('dialog-mask'); + dialogmask.style.visibility = "visible"; + dialog.style.visibility = "visible"; + } + dialog.style.opacity = .00; + dialog.style.filter = 'alpha(opacity=0)'; + dialog.alpha = 0; + var width = pageWidth(); + var height = pageHeight(); + var left = leftPosition(); + var top = topPosition(); + var dialogwidth = dialog.offsetWidth; + var dialogheight = dialog.offsetHeight; + var topposition = top + (height / 3) - (dialogheight / 2); + var leftposition = left + (width / 2) - (dialogwidth / 2); + dialog.style.top = topposition + "px"; + dialog.style.left = leftposition + "px"; + dialogheader.className = type + "header"; + dialogtitle.innerHTML = title; + dialogcontent.className = type; + dialogcontent.innerHTML = message; + var content = document.getElementById(WRAPPER); + dialogmask.style.height = content.offsetHeight + 'px'; + dialog.timer = setInterval("fadeDialog(1)", TIMER); + if(autohide) { + dialogclose.style.visibility = "hidden"; + window.setTimeout("hideDialog()", (autohide * 1000)); + } else { + dialogclose.style.visibility = "visible"; + } +} + +// hide the dialog box // +function hideDialog() { + var dialog = document.getElementById('dialog'); + clearInterval(dialog.timer); + dialog.timer = setInterval("fadeDialog(0)", TIMER); +} + +// fade-in the dialog box // +function fadeDialog(flag) { + if(flag == null) { + flag = 1; + } + var dialog = document.getElementById('dialog'); + var value; + if(flag == 1) { + value = dialog.alpha + SPEED; + } else { + value = dialog.alpha - SPEED; + } + dialog.alpha = value; + dialog.style.opacity = (value / 100); + dialog.style.filter = 'alpha(opacity=' + value + ')'; + if(value >= 99) { + clearInterval(dialog.timer); + dialog.timer = null; + } else if(value <= 1) { + dialog.style.visibility = "hidden"; + document.getElementById('dialog-mask').style.visibility = "hidden"; + clearInterval(dialog.timer); + } +} + diff --git a/felamimail/templates/default/app.css b/felamimail/templates/default/app.css index 39f4ce0608..2b30803d7e 100644 --- a/felamimail/templates/default/app.css +++ b/felamimail/templates/default/app.css @@ -486,4 +486,21 @@ DIV.divButton { border-top: 1px solid silver; overflow:auto; } - +/* +* new dialog style definitions +*/ +#contentdialog {padding:20px} +#dialog {position:absolute; width:425px; padding:10px; z-index:200; background:#fff} +#dialog-header {display:block; position:relative; width:411px; padding:3px 6px 7px; height:14px; font-size:14px; font-weight:bold} +#dialog-title {float:left} +#dialog-close {float:right; cursor:pointer; margin:3px 3px 0 0; height:11px; width:11px; background:url(images/dialog_close.gif) no-repeat} +#dialog-content {display:block; height:160px; padding:6px; color:#666666; font-size:13px} +#dialog-mask {position:absolute; top:0; left:0; min-height:100%; width:100%; background:#FFF; opacity:.75; filter:alpha(opacity=75); z-index:100} +.error {background:#fff url(images/error_bg.jpg) bottom right no-repeat; border:1px solid #924949; border-top:none} +.errorheader {background:url(images/error_header.gif) repeat-x; color:#6f2c2c; border:1px solid #924949; border-bottom:none} +.warning {background:#fff url(images/warning_bg.jpg) bottom right no-repeat; border:1px solid #c5a524; border-top:none} +.warningheader {background:url(images/warning_header.gif) repeat-x; color:#957c17; border:1px solid #c5a524; border-bottom:none} +.success {background:#fff url(images/success_bg.jpg) bottom right no-repeat; border:1px solid #60a174; border-top:none} +.successheader {background:url(images/success_header.gif) repeat-x; color:#3c7f51; border:1px solid #60a174; border-bottom:none} +.prompt {background:#fff url(images/prompt_bg.jpg) bottom right no-repeat; border:1px solid #4f6d81; border-top:none} +.promptheader {background:url(images/prompt_header.gif) repeat-x; color:#355468; border:1px solid #4f6d81; border-bottom:none} diff --git a/felamimail/templates/default/images/dialog_close.gif b/felamimail/templates/default/images/dialog_close.gif new file mode 100644 index 0000000000000000000000000000000000000000..31292f8e4c8b5c6daec7b47afa45cbd1771aa788 GIT binary patch literal 64 zcmZ?wbhEHbNXe`B`t&A z5ke>=QV5Aep;5vhP-ygyZGfwY$c`PDZAkqM2poYx38BQ$XfY{KQPIES|M$aI3xGiZ znLs8Cf&riy2n+++Y6UI=01SXZAP|t~Uw|M$eo!G47y}dkjc)G{C=8Ae2OuzTMwYV{{|4^!SwIUux z39oX^E^R*8+`F)wdaO>}C*TC<1Z~V|J&W)%_$z0~W`q>o?e|9WYGX2fF>O7Tr>I(N z>XSFUL4NbN>Z^^D{~J`;g-?~0h7x$jiq*&X_vFgJe%Ge^s!!5a#MWMX)hn5OcSzgZ z+s)c*$@FllYORu0v8Z<}G%EZ@>Ri^zL1tfL)pnZs~s+K zYYAdY%dUR?G(f(s>%ET9uhq}xj5nwGF2hbNm1w#^iI$jFq3JiC*plO`zXjO+UeFk5 z3uk?%3n?}RP=-iwV!k-aER{{hw(V&M`8+D7*yxu{*YjVJYmKei7}&3E-4!aP&4!=S zk~yVEsq-z(JmzJ%0vJ1)RbgM%?=g2uR%ZIBZ;3 zZnCs;@_AB!UGbydG@D78@Ot$K^5Le?BiZ~3pM!@Ikye_$2L=8v#U28V zX6DYa>FlcD^64rSUq{3Jk_H(c#)D%CybEh<=s`ieTwr-YC3{#>-k?_G)?0|AMv#K_ z>`ZlkUF1~_WHsY(1tOz-T#&MOI;kUj#Kx3j$m6r~0Zk;)!RQvK9-9i?_MG*20YW!E;$!WUo8JQXY_kVYxT@ zzMa8?faXb2vm;=sR`H51y{#E{Ct@Xfe)YQ5KUns1*OZ0zVfxzY=ycpZ-Tn|aa%i=`5CN1ubrAb%X_EaJC2)N5FowWF(BjaY}gYbO%>sR82qyc(eb zRIb@C@yS6>%;u9`n){_!Q-04oIJEXJ!-+TPyay<0SNJWLii&+I9yZ4O zVx~lys>pIHodL6kR>~%De4gn<+;Q@f+^?`Wdt>pqWfHS)nd33C&|Nn~t}kw`+1#7H zI&>k~thr{=l+;(VY8o*aP0r2Y8F;tQ?5`$J}J zMKyR=(E7q4FHPl%5xIm+%;LbS|Jx7BDBAQPVGr&+@OcEwEA>ku3H!B z>XWr`QG}eid)#h)n1mAnD+m)IjMt~?DDMidS)O<0_b0Imc!P(>S3}(IE9cymp7*=k zowyddR{U$mg@%=T^}^Egu3^-n8Sb@waTNk_vaS(TdG67AtCdThvwF?j$p~#yN5rbk z=;SMMY0GaK`gn5wr4s)+l@sw%k+p?P%tKJNiNuc#PkRXxuB*%xpMGuE#O3?#$V9}6 z{dST$L;AJtao+ZwaD`8WC3UacHIuQ5fu=nOhokro$w7L&WzdVDkEaXAhfOzH#R?u| zuQ5mWrj$L7fJSTbMoW{@EA^EeZuccbsMi*dcu*eNfj6v|5nA-u?f6{Y0PnK2Rb_O^7O;FdFkY$J z*eQGMT-uo};A_vKg)WEh#>))a(`iOMKq^6C30O|?0#ZdeYc0~Cg9&@+SX%uvF0814 zw-idiIt4Qva{PJ|GytgRS<1lCGt*KhQbem21?RctIgDh42%0BBB8xLWleusAO^7Qx zoqgey{$WGie@Q8Fs(%$-#^bQGTqDWbWvJv-;vwe>wFF4+cVf;)`VkRV(U~T=rgc|7jble8ONeX%;T_4P&5gws7f$Pan5fd$ z2pQK)w)MUfRmvsA5qKQ6IHJp=mYRQ`?w=$gg?@G{MZ>rh(T&wdrv`)n1K1gMzLQ@t zhuE_~_m9t>RLTwVeD_{KS|=#^^Awj#t#E`UJD2TfT~cQ^1O z6P=$LBJ9i^jE>7f;I2N@?8Fjb32~H`ySpq#r%++EzcRt?T2JHWsl7OM0o&tBA6#IN zypILRcTI}}umXc`-LkT)-VL2@c=ye`%LfON)QH9(Rv0~(*psPu8qUs{Ah$=Q;?Ger zUUYWUO*4b_b-h(mQaxXm{JvRQi&vH)#0-T6o}R4^chP@P&(ovhXJ_9C#2AIqg%O1# z4o8eIZ1+Y{o`=I6K`0?F;foKKK4Jw&kSYD8@$rspyZa19wN`XL1wDErC$A};WsY?U zb?+01%OmXZV6Q_d12@55TU`l``tI`RU%ujSsD$F8fD;nfoV7@t;Bm`4w~VXrC$i@0 z|CpV*k4McPbo3;iHJ1E5ogH))_;#$M&o6mOC&^Yn0AcXADJ?r+c;3wz-;)~M>JLUj25AXXf2(@ zcm6|E6@@wOZ4+?r5@aSn$YQGgRMmu6CTu6Jm4CY^;Nmu4k8gZwAm2F?^=)-^z3S=` z`&4y`l6QiiUsSfqY|wt+#$TSLA(P}DrXA=WriHdE@0{6Z{1%m4?^~E$cxOb!=E*y; zueJh=MQO|mh3VGbY_KZ0gloHsDEC)xnL~M)4xU;vo1dRv(1W!Gxp0%?iBu9eAfxvi zQ+q#ltG)~xV9_#iD~FESx`g$v6h49sfhKUEB!w=5bfGCcHWgs2NPSpzA2WKITb?A= zl4MuZb3fbTjpCaB%VP&)j7(SLa6hSEkpA(Bl7}KLTq8u$$K{e|`78?mbIAS9<0cON zkeusBtRN3tnDj%6cg#)Aj|!er@1>J=sN8+gz@na{LDZnO-;WxFeSZR@OhOG3NCdX` eWi@*hC_Djxvh-0GBfgs9Z__ z;`NOiSJth2b@l4y)vIsq-1+p(nJa78UfZrMq>1fP(BLp1!W^*H}dvr5MDj-!29UiFvv>hE&{2PDx0}NI1YWL!yA83TUFQ W6hn{O+mCrb6%3xPelF{r5}E***dYA? literal 0 HcmV?d00001 diff --git a/felamimail/templates/default/images/prompt_bg.jpg b/felamimail/templates/default/images/prompt_bg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d80e9164ac6cd792116e9389edcf0f35e2733513 GIT binary patch literal 2864 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 literal 0 HcmV?d00001 diff --git a/felamimail/templates/default/images/prompt_header.gif b/felamimail/templates/default/images/prompt_header.gif new file mode 100644 index 0000000000000000000000000000000000000000..2709af8f85ec264cc324437392653cf0fb2ba61d GIT binary patch literal 150 zcmZ?wbhEHbWMq(FIKsd%XY=6=ht8kA{-AuyidmZuUApsR>#<9#_n%p`tv zGH>hA<5%u3-+glN&J+92-dM5s^!Zzl4qv>z^VHRu8xKz3aDV|XQ2faPme&E1AUhdY bg%g5Yn3QcN3(D{=VhB+c?q=pyWUvMR@%lNP literal 0 HcmV?d00001 diff --git a/felamimail/templates/default/images/success_bg.jpg b/felamimail/templates/default/images/success_bg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..af6f0731fe6ed3af0f82e241a8d2d56c827c13a6 GIT binary patch literal 2772 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 bLWs*LCCPIW3>q&eh`NSe{>b3M!C(ylVtPUH literal 0 HcmV?d00001 diff --git a/felamimail/templates/default/mainscreen.tpl b/felamimail/templates/default/mainscreen.tpl index 93f699e454..00b31d3d65 100644 --- a/felamimail/templates/default/mainscreen.tpl +++ b/felamimail/templates/default/mainscreen.tpl @@ -5,8 +5,14 @@ var sURL = unescape(window.location.pathname); // some translations needed for javascript functions var movingMessages = '{lang_moving_messages_to}'; +var copyingMessages = '{lang_copying_messages_to}'; var lang_askformove = '{lang_askformove}'; var prefAskForMove = '{prefaskformove}'; +var CopyOrMove = true; +var lang_MoveCopyTitle = '{lang_MoveCopyTitle}'; +var lang_copy = '{lang_copy}'; +var lang_move = '{lang_move}'; +var lang_cancel = '{lang_cancel}'; var lang_emptyTrashFolder = '{lang_empty_trash}'; var lang_compressingFolder = '{lang_compress_folder}'; @@ -47,7 +53,6 @@ fm_startTimerFolderStatusUpdate(refreshTimeOut); fm_startTimerMessageListUpdate(refreshTimeOut); -
- @@ -139,6 +143,7 @@ fm_startTimerMessageListUpdate(refreshTimeOut); {IFrameForPreview} + diff --git a/felamimail/templates/jerryr/app.css b/felamimail/templates/jerryr/app.css index f3bea48699..ed66b1a1da 100644 --- a/felamimail/templates/jerryr/app.css +++ b/felamimail/templates/jerryr/app.css @@ -529,4 +529,21 @@ DIV.divButton { border-top: 1px solid silver; overflow:auto; } - +/* +* new dialog style definitions +*/ +#contentdialog {padding:20px} +#dialog {position:absolute; width:425px; padding:10px; z-index:200; background:#fff} +#dialog-header {display:block; position:relative; width:411px; padding:3px 6px 7px; height:14px; font-size:14px; font-weight:bold} +#dialog-title {float:left} +#dialog-close {float:right; cursor:pointer; margin:3px 3px 0 0; height:11px; width:11px; background:url(images/dialog_close.gif) no-repeat} +#dialog-content {display:block; height:160px; padding:6px; color:#666666; font-size:13px} +#dialog-mask {position:absolute; top:0; left:0; min-height:100%; width:100%; background:#FFF; opacity:.75; filter:alpha(opacity=75); z-index:100} +.error {background:#fff url(../default/images/error_bg.jpg) bottom right no-repeat; border:1px solid #924949; border-top:none} +.errorheader {background:url(../default/images/error_header.gif) repeat-x; color:#6f2c2c; border:1px solid #924949; border-bottom:none} +.warning {background:#fff url(../default/images/warning_bg.jpg) bottom right no-repeat; border:1px solid #c5a524; border-top:none} +.warningheader {background:url(../default/images/warning_header.gif) repeat-x; color:#957c17; border:1px solid #c5a524; border-bottom:none} +.success {background:#fff url(../default/images/success_bg.jpg) bottom right no-repeat; border:1px solid #60a174; border-top:none} +.successheader {background:url(../default/images/success_header.gif) repeat-x; color:#3c7f51; border:1px solid #60a174; border-bottom:none} +.prompt {background:#fff url(../default/images/prompt_bg.jpg) bottom right no-repeat; border:1px solid #4f6d81; border-top:none} +.promptheader {background:url(../default/images/prompt_header.gif) repeat-x; color:#355468; border:1px solid #4f6d81; border-bottom:none} diff --git a/felamimail/templates/jerryr/mainscreen.tpl b/felamimail/templates/jerryr/mainscreen.tpl index 8b9c1e247e..2dbb9b8b98 100644 --- a/felamimail/templates/jerryr/mainscreen.tpl +++ b/felamimail/templates/jerryr/mainscreen.tpl @@ -5,8 +5,14 @@ var sURL = unescape(window.location.pathname); // some translations needed for javascript functions var movingMessages = '{lang_moving_messages_to}'; +var copyingMessages = '{lang_copying_messages_to}'; var lang_askformove = '{lang_askformove}'; var prefAskForMove = '{prefaskformove}'; +var CopyOrMove = true; +var lang_MoveCopyTitle = '{lang_MoveCopyTitle}'; +var lang_copy = '{lang_copy}'; +var lang_move = '{lang_move}'; +var lang_cancel = '{lang_cancel}'; var lang_emptyTrashFolder = '{lang_empty_trash}'; var lang_compressingFolder = '{lang_compress_folder}'; @@ -131,7 +137,6 @@ fm_startTimerMessageListUpdate(refreshTimeOut); -