diff --git a/config/config.inc.php b/config/config.inc.php index a34bdfb3..f2c1dae5 100644 --- a/config/config.inc.php +++ b/config/config.inc.php @@ -3,78 +3,10 @@ Disable SSL for IMAP/SMTP If your IMAP/SMTP servers are on the same host or are connected via a secure network, not using SSL connections improves performance. So don't use "ssl://" or "tls://" urls for 'default_host' and 'smtp_server' config options. */ +$currentPath = getcwd(); +chdir(dirname(__FILE__) . '/../../../../'); if (!$no_include_config) { - $currentPath = getcwd(); - chdir(dirname(__FILE__) . '/../../../../'); include_once('include/ConfigUtils.php'); - chdir($currentPath); } -$config['db_dsnw'] = 'mysql://' . $dbconfig['db_username'] . ':' . $dbconfig['db_password'] . '@' . $dbconfig['db_server'] . ':' . $dbconfig['db_port'] . '/' . $dbconfig['db_name']; -$config['db_prefix'] = 'roundcube_'; -$config['default_host'] = ['ssl://imap.gmail.com' => 'ssl://imap.gmail.com',]; -$config['validate_cert'] = false; -$config['default_port'] = 993; -$config['smtp_server'] = 'ssl://smtp.gmail.com'; -$config['smtp_port'] = 465; -$config['smtp_user'] = '%u'; -$config['smtp_pass'] = '%p'; -$config['support_url'] = 'http://yetiforce.com'; -$config['des_key'] = 'rGOQ26hR%gxlZk=QA!$HMOvb'; -$config['username_domain'] = 'gmail.com'; -$config['product_name'] = 'YetiForce'; -$config['plugins'] = array('identity_smtp', 'ical_attachments', 'yetiforce', 'thunderbird_labels', 'zipdownload'); -$config['language'] = 'en_US'; -$config['mime_param_folding'] = 0; -$config['skin_logo'] = array("*" => "/images/null.png"); -$config['ip_check'] = false; /// -$config['enable_spellcheck'] = true; -$config['identities_level'] = '0'; -$config['auto_create_user'] = true; -$config['mail_pagesize'] = 25; -$config['addressbook_pagesize'] = 50; -$config['prefer_html'] = true; -$config['preview_pane'] = false; -$config['htmleditor'] = '1'; -$config['draft_autosave'] = 300; -$config['mdn_requests'] = '0'; -$config['session_lifetime'] = 10; -$config['sendmail_delay'] = 0; -$config['date_long'] = 'Y-m-d H:i'; -$config['date_format'] = 'Y-m-d'; -$config['time_format'] = 'H:i'; -$config['show_images'] = '0'; -$config['imap_cache'] = 'db'; -$config['messages_cache'] = 'db'; - -$config['debug_level'] = $DEBUG_CONFIG['ROUNDCUBE_DEBUG_LEVEL']; -$config['per_user_logging'] = $DEBUG_CONFIG['ROUNDCUBE_PER_USER_LOGGING']; -$config['smtp_log'] = $DEBUG_CONFIG['ROUNDCUBE_SMTP_LOG']; -$config['log_logins'] = $DEBUG_CONFIG['ROUNDCUBE_LOG_LOGINS']; -$config['log_session'] = $DEBUG_CONFIG['ROUNDCUBE_LOG_SESSION']; -$config['sql_debug'] = $DEBUG_CONFIG['ROUNDCUBE_SQL_DEBUG']; -$config['imap_debug'] = $DEBUG_CONFIG['ROUNDCUBE_IMAP_DEBUG']; -$config['ldap_debug'] = $DEBUG_CONFIG['ROUNDCUBE_LDAP_DEBUG']; -$config['smtp_debug'] = $DEBUG_CONFIG['ROUNDCUBE_SMTP_DEBUG']; -$config['log_dir'] = RCUBE_INSTALL_PATH . '/../../../cache/logs/'; -$config['temp_dir'] = RCUBE_INSTALL_PATH . '/../../../cache/mail/'; -$config['devel_mode'] = $DEBUG_CONFIG['ROUNDCUBE_DEVEL_MODE']; - -$config['imap_conn_options'] = [ - 'ssl' => [ - 'verify_peer' => false, - 'verfify_peer_name' => false, - ], -]; -$config['smtp_timeout'] = 5; -$config['smtp_conn_options'] = [ - 'ssl' => [ - 'verify_peer' => false, - 'verfify_peer_name' => false, - ], -]; - -$config['root_directory'] = ROOT_DIRECTORY . DIRECTORY_SEPARATOR; -$config['site_URL'] = $site_URL; -$config['imap_open_add_connection_type'] = true; -$config['enable_variables_in_signature'] = false; -$config['skin'] = 'yetiforce'; +include_once('config/modules/OSSMail.php'); +chdir($currentPath); diff --git a/config/config.inc.php.sample b/config/config.inc.php.sample deleted file mode 100644 index 9f218be0..00000000 --- a/config/config.inc.php.sample +++ /dev/null @@ -1,85 +0,0 @@ - "/images/null.png"); -$config['ip_check'] = false;/// -$config['enable_spellcheck'] = true;// -$config['identities_level'] = 0; -$config['auto_create_user'] = true; -$config['smtp_log'] = true; -$config['mail_pagesize'] = 50; -$config['addressbook_pagesize'] = 50; -$config['prefer_html'] = true; -$config['preview_pane'] = false; -$config['htmleditor'] = 0; -$config['draft_autosave'] = 300; -$config['mdn_requests'] = 0; -$config['session_lifetime'] = 10; -$config['sendmail_delay'] = 0; -$config['date_long'] = 'Y-m-d H:i'; -$config['date_format'] = 'Y-m-d'; -$config['time_format'] = 'H:i'; -$config['show_images'] = 0; \ No newline at end of file diff --git a/plugins/yetiforce/colResizable.js b/plugins/yetiforce/colResizable.js new file mode 100644 index 00000000..65f75680 --- /dev/null +++ b/plugins/yetiforce/colResizable.js @@ -0,0 +1,415 @@ +/** + _ _____ _ _ _ + | | __ \ (_) | | | | + ___ ___ | | |__) |___ ___ _ ______ _| |__ | | ___ + / __/ _ \| | _ // _ \/ __| |_ / _` | '_ \| |/ _ \ + | (_| (_) | | | \ \ __/\__ \ |/ / (_| | |_) | | __/ + \___\___/|_|_| \_\___||___/_/___\__,_|_.__/|_|\___| + + v1.6 - jQuery plugin created by Alvaro Prieto Lauroba + + Licences: MIT & GPL + Feel free to use or modify this plugin as far as my full name is kept + + If you are going to use this plug-in in production environments it is + strongly recommended to use its minified version: colResizable.min.js + +*/ + +(function($){ + + var d = $(document); //window object + var h = $("head"); //head object + var drag = null; //reference to the current grip that is being dragged + var tables = {}; //object of the already processed tables (table.id as key) + var count = 0; //internal count to create unique IDs when needed. + + //common strings for packing + var ID = "id"; + var PX = "px"; + var SIGNATURE ="JColResizer"; + var FLEX = "JCLRFlex"; + + //short-cuts + var I = parseInt; + var M = Math; + var ie = navigator.userAgent.indexOf('Trident/4.0')>0; + var S; + try{S = sessionStorage;}catch(e){} //Firefox crashes when executed as local file system + + //append required CSS rules + h.append(""); + + + /** + * Function to allow column resizing for table objects. It is the starting point to apply the plugin. + * @param {DOM node} tb - reference to the DOM table object to be enhanced + * @param {Object} options - some customization values + */ + var init = function( tb, options){ + var t = $(tb); //the table object is wrapped + t.opt = options; //each table has its own options available at anytime + t.mode = options.resizeMode; //shortcuts + t.dc = t.opt.disabledColumns; + if(t.opt.disable) return destroy(t); //the user is asking to destroy a previously colResized table + var id = t.id = t.attr(ID) || SIGNATURE+count++; //its id is obtained, if null new one is generated + t.p = t.opt.postbackSafe; //short-cut to detect postback safe + if(!t.is("table") || tables[id] && !t.opt.partialRefresh) return; //if the object is not a table or if it was already processed then it is ignored. + if (t.opt.hoverCursor !== 'e-resize') h.append(""); //if hoverCursor has been set, append the style + t.addClass(SIGNATURE).attr(ID, id).before('
'); //the grips container object is added. Signature class forces table rendering in fixed-layout mode to prevent column's min-width + t.g = []; t.c = []; t.w = t.width(); t.gc = t.prev(); t.f=t.opt.fixed; //t.c and t.g are arrays of columns and grips respectively + if(options.marginLeft) t.gc.css("marginLeft", options.marginLeft); //if the table contains margins, it must be specified + if(options.marginRight) t.gc.css("marginRight", options.marginRight); //since there is no (direct) way to obtain margin values in its original units (%, em, ...) + t.cs = I(ie? tb.cellSpacing || tb.currentStyle.borderSpacing :t.css('border-spacing'))||2; //table cellspacing (not even jQuery is fully cross-browser) + t.b = I(ie? tb.border || tb.currentStyle.borderLeftWidth :t.css('border-left-width'))||1; //outer border width (again cross-browser issues) + // if(!(tb.style.width || tb.width)) t.width(t.width()); //I am not an IE fan at all, but it is a pity that only IE has the currentStyle attribute working as expected. For this reason I can not check easily if the table has an explicit width or if it is rendered as "auto" + tables[id] = t; //the table object is stored using its id as key + createGrips(t); //grips are created + + }; + + + /** + * This function allows to remove any enhancements performed by this plugin on a previously processed table. + * @param {jQuery ref} t - table object + */ + var destroy = function(t){ + var id=t.attr(ID), t=tables[id]; //its table object is found + if(!t||!t.is("table")) return; //if none, then it wasn't processed + t.removeClass(SIGNATURE+" "+FLEX).gc.remove(); //class and grips are removed + delete tables[id]; //clean up data + }; + + + /** + * Function to create all the grips associated with the table given by parameters + * @param {jQuery ref} t - table object + */ + var createGrips = function(t){ + + var th = t.find(">thead>tr:first>th,>thead>tr:first>td"); //table headers are obtained + if(!th.length) th = t.find(">tbody>tr:first>th,>tr:first>th,>tbody>tr:first>td, >tr:first>td"); //but headers can also be included in different ways + th = th.filter(":visible"); //filter invisible columns + t.cg = t.find("col"); //a table can also contain a colgroup with col elements + t.ln = th.length; //table length is stored + if(t.p && S && S[t.id])memento(t,th); //if 'postbackSafe' is enabled and there is data for the current table, its coloumn layout is restored + th.each(function(i){ //iterate through the table column headers + var c = $(this); //jquery wrap for the current column + var dc = t.dc.indexOf(i)!=-1; //is this a disabled column? + var g = $(t.gc.append('
')[0].lastChild); //add the visual node to be used as grip + g.append(dc ? "": t.opt.gripInnerHtml).append('
'); + if(i == t.ln-1){ //if the current grip is the las one + g.addClass("JCLRLastGrip"); //add a different css class to stlye it in a different way if needed + if(t.f) g.html(""); //if the table resizing mode is set to fixed, the last grip is removed since table with can not change + } + g.bind('touchstart mousedown', onGripMouseDown); //bind the mousedown event to start dragging + + if (!dc){ + //if normal column bind the mousedown event to start dragging, if disabled then apply its css class + g.removeClass('JCLRdisabledGrip').bind('touchstart mousedown', onGripMouseDown); + }else{ + g.addClass('JCLRdisabledGrip'); + } + + g.t = t; g.i = i; g.c = c; c.w =c.width(); //some values are stored in the grip's node data as shortcut + t.g.push(g); t.c.push(c); //the current grip and column are added to its table object + c.width(c.w).removeAttr("width"); //the width of the column is converted into pixel-based measurements + g.data(SIGNATURE, {i:i, t:t.attr(ID), last: i == t.ln-1}); //grip index and its table name are stored in the HTML + }); + t.cg.removeAttr("width"); //remove the width attribute from elements in the colgroup + + t.find('td, th').not(th).not('table th, table td').each(function(){ + $(this).removeAttr('width'); //the width attribute is removed from all table cells which are not nested in other tables and dont belong to the header + }); + if(!t.f){ + t.removeAttr('width').addClass(FLEX); //if not fixed, let the table grow as needed + } + syncGrips(t); //the grips are positioned according to the current table layout + //there is a small problem, some cells in the table could contain dimension values interfering with the + //width value set by this plugin. Those values are removed + + }; + + + /** + * Function to allow the persistence of columns dimensions after a browser postback. It is based in + * the HTML5 sessionStorage object, which can be emulated for older browsers using sessionstorage.js + * @param {jQuery ref} t - table object + * @param {jQuery ref} th - reference to the first row elements (only set in deserialization) + */ + var memento = function(t, th){ + var w,m=0,i=0,aux =[],tw; + if(th){ //in deserialization mode (after a postback) + t.cg.removeAttr("width"); + if(t.opt.flush){ S[t.id] =""; return;} //if flush is activated, stored data is removed + w = S[t.id].split(";"); //column widths is obtained + tw = w[t.ln+1]; + if(!t.f && tw){ //if not fixed and table width data available its size is restored + t.width(tw*=1); + if(t.opt.overflow) { //if overfolw flag is set, restore table width also as table min-width + t.css('min-width', tw + PX); + t.w = tw; + } + } + for(;i*{cursor:"+ t.opt.dragCursor +"!important}"); //change the mouse cursor + g.addClass(t.opt.draggingClass); //add the dragging class (to allow some visual feedback) + drag = g; //the current grip is stored as the current dragging object + if(t.c[o.i].l) for(var i=0,c; i'+h.name+"")});$.each(e,function(g,h){if(jQuery.inArray(h.name,d)==-1){jQuery("#vtmodulemenu .toolbarmenu").append('
  • '+h.label+"
  • ");d.push(h.name)}})}});jQuery("#vtmodulemenu li a").on("click",function(){var d=jQuery(this).data("module");if(d==undefined){jQuery("#tplmenu li").show()}else{jQuery("#tplmenu li."+d).show();jQuery("#tplmenu li").not("."+d).hide()}});if(rcmail.env.crmModule!=undefined){jQuery("#vtmodulemenu li."+rcmail.env.crmModule+" a").trigger("click")}jQuery("#tplmenu li a").on("click",function(){var h=jQuery(this).data("tplid");var f=rcmail.env.crmRecord,e=rcmail.env.crmModule,d=rcmail.env.crmView;if(d=="List"){var g=jQuery(c.document).find(".listViewEntriesCheckBox")[0];f=jQuery(g).val()}jQuery.ajax({type:"Get",url:b+"module=OSSMailTemplates&action=GetTpl",data:{id:h,record_id:f,select_module:e},success:function(l){var j=jQuery('[name="_subject"]').val();var k=jQuery("
    ").html(l.result.content).html();jQuery('[name="_subject"]').val(j+" "+l.result.subject);if(window.tinyMCE&&(ed=tinyMCE.get(rcmail.env.composebody))){var i=tinyMCE.activeEditor.getContent();tinymce.activeEditor.setContent(k+i)}else{var i=jQuery("#composebody").val();jQuery("#composebody").val(k+i)}if(l.result.hasOwnProperty("attachments")){rcmail.command("yetiforce.addFilesToMail",l.result.attachments)}}})})});function getCrmWindow(){if(opener!==null){return opener.parent}else{if(typeof parent.app=="object"){return parent}}return false}function getMailFromCRM(c,b,a,d){if(d>1){d=1}else{d=0}window.crm.Vtiger_Index_Js.getEmailFromRecord(a,b,d).then(function(f){if(f==""){var e={text:window.crm.app.vtranslate("NoFindEmailInRecord"),animation:"show"};window.crm.Vtiger_Helper_Js.showPnotify(e)}else{var g=$("#"+c).val();if(g!=""&&g.charAt(g.length-1)!=","){g=g+","}$("#"+c).val(g+f)}})}function show(c,d,i,f,b){var h=window.crm.Vtiger_Popup_Js.getInstance();if(typeof c=="undefined"){c={}}if(typeof c=="object"&&(typeof c.view=="undefined")){c.view="Popup"}if(typeof f=="undefined"){f="postSelection"+Math.floor(Math.random()*10000)}if(typeof i=="undefined"){i="test"}if(typeof c=="object"){c.triggerEventName=f}else{c+="&triggerEventName="+f}var e=(typeof c=="string")?c:window.crm.jQuery.param(c);var a=c.url+e;var g=window.crm.window.open(a,i,"width=800,height=650,resizable=0,scrollbars=1");if(typeof h.destroy=="function"){h.destroy()}window.crm.jQuery.initWindowMsg();if(typeof d!="undefined"){h.retrieveSelectedRecords(d,f)}if(typeof b=="function"){window.crm.jQuery.windowMsg("Vtiger.OnPopupWindowLoad.Event",function(j){b(j)})}return g}; \ No newline at end of file +window.rcmail&&rcmail.addEventListener("init",function(a){var c=window.crm=getCrmWindow();var b=rcmail.env.site_URL+"index.php?";rcmail.env.compose_commands.push("yetiforce.addFilesToMail");rcmail.env.compose_commands.push("yetiforce.addFilesFromCRM");rcmail.register_command("yetiforce.addFilesToMail",function(f){var e=new Date().getTime(),d="rcmupload"+e,g=rcmail.async_upload_form_frame(d);f._uploadid=e;jQuery.ajax({url:"?_task=mail&_action=plugin.yetiforce.addFilesToMail&_id="+rcmail.env.compose_id,type:"POST",data:f,success:function(i){var j=g[0].contentWindow.document;var h=$("html",j);h.html(i)}})},true);rcmail.register_command("yetiforce.addFilesFromCRM",function(e){if(c!=false){var g={module:"Documents",src_module:"Documents",multi_select:true,url:b};var f=$(this);var d=jQuery.Event(c.Vtiger_Edit_Js.preReferencePopUpOpenEvent);f.trigger(d);var e={};show(g,function(j){var i=JSON.parse(j);var h=[];for(var k in i){h.push(k)}rcmail.command("yetiforce.addFilesToMail",{ids:h,_uploadid:new Date().getTime()})})}},true);$("#composeheaders #yt_adress_buttons .button").click(function(){var e=$(this).attr("data-input");var d=$(this).attr("data-module");var f={module:d,src_module:"OSSMail",multi_select:true,url:b};show(f,function(i){var g=JSON.parse(i);var h=Object.keys(g).length;for(var j in g){getMailFromCRM(e,d,j,h)}})});jQuery.ajax({type:"Get",url:b+"module=OSSMailTemplates&action=GetTemplates",async:false,success:function(f){var d=[];var e=[];$.each(f.result,function(g,h){jQuery("#vtmodulemenulink").removeClass("disabled");jQuery("#tplmenulink").removeClass("disabled");e.push({name:h.module,label:h.moduleName});jQuery("#tplmenu #texttplsmenu").append('
  • '+h.name+"
  • ")});$.each(e,function(g,h){if(jQuery.inArray(h.name,d)==-1){jQuery("#vtmodulemenu .toolbarmenu").append('
  • '+h.label+"
  • ");d.push(h.name)}})}});jQuery("#vtmodulemenu li a").on("click",function(){var d=jQuery(this).data("module");if(d==undefined){jQuery("#tplmenu li").show()}else{jQuery("#tplmenu li."+d).show();jQuery("#tplmenu li").not("."+d).hide()}});if(rcmail.env.crmModule!=undefined){jQuery("#vtmodulemenu li."+rcmail.env.crmModule+" a").trigger("click")}jQuery("#tplmenu li a").on("click",function(){var h=jQuery(this).data("tplid");var f=rcmail.env.crmRecord,e=rcmail.env.crmModule,d=rcmail.env.crmView;if(d=="List"){var g=jQuery(c.document).find(".listViewEntriesCheckBox")[0];f=jQuery(g).val()}jQuery.ajax({type:"Get",url:b+"module=OSSMailTemplates&action=GetTpl",data:{id:h,record_id:f,select_module:e},success:function(l){var j=jQuery('[name="_subject"]').val();var k=jQuery("
    ").html(l.result.content).html();jQuery('[name="_subject"]').val(j+" "+l.result.subject);if(window.tinyMCE&&(ed=tinyMCE.get(rcmail.env.composebody))){var i=tinyMCE.activeEditor.getContent();tinymce.activeEditor.setContent(k+i)}else{var i=jQuery("#composebody").val();jQuery("#composebody").val(k+i)}if(l.result.hasOwnProperty("attachments")){rcmail.command("yetiforce.addFilesToMail",l.result.attachments)}}})})});function getCrmWindow(){if(opener!==null){return opener.parent}else{if(typeof parent.app=="object"){return parent}}return false}function getMailFromCRM(c,b,a,d){if(d>1){d=1}else{d=0}window.crm.Vtiger_Index_Js.getEmailFromRecord(a,b,d).then(function(f){if(f==""){var e={text:window.crm.app.vtranslate("NoFindEmailInRecord"),animation:"show"};window.crm.Vtiger_Helper_Js.showPnotify(e)}else{var g=$("#"+c).val();if(g!=""&&g.charAt(g.length-1)!=","){g=g+","}$("#"+c).val(g+f)}})}function show(c,d,i,f,b){var h=window.crm.Vtiger_Popup_Js.getInstance();if(typeof c=="undefined"){c={}}if(typeof c=="object"&&(typeof c.view=="undefined")){c.view="Popup"}if(typeof f=="undefined"){f="postSelection"+Math.floor(Math.random()*10000)}if(typeof i=="undefined"){i="test"}if(typeof c=="object"){c.triggerEventName=f}else{c+="&triggerEventName="+f}var e=(typeof c=="string")?c:window.crm.jQuery.param(c);var a=c.url+e;var g=window.crm.window.open(a,i,"width=800,height=650,resizable=0,scrollbars=1");if(typeof h.destroy=="function"){h.destroy()}window.crm.jQuery.initWindowMsg();if(typeof d!="undefined"){h.retrieveSelectedRecords(d,f)}if(typeof b=="function"){window.crm.jQuery.windowMsg("Vtiger.OnPopupWindowLoad.Event",function(j){b(j)})}return g}; \ No newline at end of file diff --git a/plugins/yetiforce/list.js b/plugins/yetiforce/list.js new file mode 100644 index 00000000..67f998b6 --- /dev/null +++ b/plugins/yetiforce/list.js @@ -0,0 +1,52 @@ +/* {[The file is published on the basis of YetiForce Public License that can be found in the following directory: licenses/License.html]} */ +window.rcmail && rcmail.addEventListener('listupdate', function (evt) { + window.crm = getCrmWindow(); + rcmail.register_command('yetiforce.importICS', function (ics, element, e) { + + }, true); + var container = $('#messagelistcontainer'); + var headerFixed = container.find('.records-table.messagelist.sortheader.fixedheader.fixedcopy'); + var messageList = container.find('#messagelist'); + var columnsWidth = window.crm.app.moduleCacheGet('widthColumns'); + if (columnsWidth != null) { + messageList.find('th,td').each(function (index) { + $(this).width(columnsWidth[index]); + }); + headerFixed.find('th,td').each(function (index) { + $(this).width(columnsWidth[index]); + }); + } + + headerFixed.colResizable({ + onResize: function (e) { + resizeContentTable(headerFixed, messageList, e); + }, + resizeMode:'fit' + }); +}); + +function resizeContentTable(headerFixed, messageList, e) +{ + var column_widths = []; + headerFixed.find('thead th,thead td').each(function (index) { + column_widths[index] = $(this).width(); + }); + messageList.find('th,td').each(function (index) { + $(this).width(column_widths[index]); + }); + window.crm.app.moduleCacheSet('widthColumns', column_widths); + $(window).scroll(); + + +} + +function getCrmWindow() { + if (opener !== null) { + return opener.parent; + } else if (typeof parent.app == "object") { + return parent; + } else if (typeof parent.parent.app == "object") { + return parent.parent; + } + return false; +} diff --git a/plugins/yetiforce/list.min.js b/plugins/yetiforce/list.min.js new file mode 100644 index 00000000..a1a27f77 --- /dev/null +++ b/plugins/yetiforce/list.min.js @@ -0,0 +1,2 @@ + +window.rcmail&&rcmail.addEventListener("listupdate",function(b){window.crm=getCrmWindow();rcmail.register_command("yetiforce.importICS",function(f,g,h){},true);var a=$("#messagelistcontainer");var c=a.find(".records-table.messagelist.sortheader.fixedheader.fixedcopy");var d=a.find("#messagelist");var e=window.crm.app.moduleCacheGet("widthColumns");if(e!=null){d.find("th,td").each(function(f){$(this).width(e[f])});c.find("th,td").each(function(f){$(this).width(e[f])})}c.colResizable({onResize:function(f){resizeContentTable(c,d,f)},resizeMode:"fit"})});function resizeContentTable(a,b,c){var d=[];a.find("thead th,thead td").each(function(e){d[e]=$(this).width()});b.find("th,td").each(function(e){$(this).width(d[e])});window.crm.app.moduleCacheSet("widthColumns",d);$(window).scroll()}function getCrmWindow(){if(opener!==null){return opener.parent}else{if(typeof parent.app=="object"){return parent}else{if(typeof parent.parent.app=="object"){return parent.parent}}}return false}; \ No newline at end of file diff --git a/plugins/yetiforce/preview.js b/plugins/yetiforce/preview.js index 8b111241..b2b8b12a 100644 --- a/plugins/yetiforce/preview.js +++ b/plugins/yetiforce/preview.js @@ -45,7 +45,7 @@ function registerEvents(content) { registerRemoveRecord(content); registerImportMail(content); - var block = content.find('.ytHeader > .data'); + var block = content.find('.ytHeader .data'); content.find('.hideBtn').click(function () { var button = $(this); var icon = button.find('.glyphicon'); @@ -224,18 +224,13 @@ function showQuickCreateForm(moduleName, record, params) { $('').appendTo(data); $('').appendTo(data); } - var links = JSON.parse(content.find('#modulesLevel0').val()); - var process = JSON.parse(content.find('#modulesLevel1').val()); - var subprocess = JSON.parse(content.find('#modulesLevel2').val()); - - if ($.inArray(sourceModule, links) >= 0) { - relatedParams['link'] = record; - } - if ($.inArray(sourceModule, process) >= 0) { - relatedParams['process'] = record; - } - if ($.inArray(sourceModule, subprocess) >= 0) { - relatedParams['subprocess'] = record; + var ids = {link: 'modulesLevel0', process: 'modulesLevel1', subprocess: 'modulesLevel2'}; + for (var i in ids) { + var element = content.find('#' + ids[i]); + var value = element.length ? JSON.parse(element.val()) : []; + if ($.inArray(sourceModule, value) >= 0) { + relatedParams[i] = record; + } } if (moduleName == 'Leads') { relatedParams['company'] = rcmail.env.fromName; @@ -320,4 +315,4 @@ function getCrmWindow() { return parent.parent; } return false; -} \ No newline at end of file +} diff --git a/plugins/yetiforce/preview.min.js b/plugins/yetiforce/preview.min.js index 51bfd996..fc082a0b 100644 --- a/plugins/yetiforce/preview.min.js +++ b/plugins/yetiforce/preview.min.js @@ -1,2 +1 @@ - -window.rcmail&&rcmail.addEventListener("init",function(a){window.crm=getCrmWindow();loadActionBar();rcmail.env.message_commands.push("yetiforce.importICS");rcmail.register_command("yetiforce.importICS",function(b,c,d){window.crm.AppConnector.request({async:true,dataType:"json",data:{module:"Calendar",action:"ImportICS",ics:b}}).then(function(e){window.crm.Vtiger_Helper_Js.showPnotify({text:e.result,type:"info",animation:"show"});$(c).closest(".icalattachments").remove()})},true)});function loadActionBar(){var a=$("#ytActionBarContent");var b={module:"OSSMail",view:"MailActionBar",uid:rcmail.env.uid,folder:rcmail.env.mailbox,rcId:rcmail.env.user_id};window.crm.AppConnector.request(b).then(function(c){a.find(".ytHeader").html(c);$("#messagecontent").css("top",(a.outerHeight()+$("#messageheader").outerHeight())+"px");registerEvents(a)})}function registerEvents(a){registerAddRecord(a);registerAddReletedRecord(a);registerSelectRecord(a);registerRemoveRecord(a);registerImportMail(a);var b=a.find(".ytHeader > .data");a.find(".hideBtn").click(function(){var c=$(this);var d=c.find(".glyphicon");if(c.data("type")=="0"){c.data("type","1");d.removeClass("glyphicon-chevron-up").addClass("glyphicon-chevron-down")}else{c.data("type","0");d.removeClass("glyphicon-chevron-down").addClass("glyphicon-chevron-up")}b.toggle();$(window).trigger("resize")})}function registerImportMail(a){a.find(".importMail").click(function(b){window.crm.Vtiger_Helper_Js.showPnotify({text:window.crm.app.vtranslate("StartedDownloadingEmail"),type:"info"});var c={module:"OSSMailScanner",action:"ImportMail",params:{uid:rcmail.env.uid,folder:rcmail.env.mailbox,rcId:rcmail.env.user_id}};window.crm.AppConnector.request(c).then(function(d){loadActionBar();window.crm.Vtiger_Helper_Js.showPnotify({text:window.crm.app.vtranslate("AddFindEmailInRecord"),type:"success"})})})}function registerRemoveRecord(a){a.find("button.removeRecord").click(function(b){var c=$(b.currentTarget).closest(".rowReletedRecord");removeRecord(c.data("id"))})}function registerSelectRecord(a){var b=a.find("#mailActionBarID").val();a.find("button.selectRecord").click(function(f){var d=jQuery('input[name="tempField"]');var h={mailId:b};if($(this).data("type")==0){var c=$(this).closest(".col").find(".module").val()}else{var c=$(this).data("module");h.crmid=$(this).closest(".rowReletedRecord").data("id");h.mod=$(this).closest(".rowReletedRecord").data("module");h.newModule=c}var g={module:c,src_module:c,src_field:"tempField",src_record:"",url:rcmail.env.site_URL+"index.php?"};showPopup(g,d,h)})}function registerAddReletedRecord(a){var b=a.find("#mailActionBarID").val();a.find("button.addReletedRecord").click(function(d){var c=$(d.currentTarget);var g=c.closest(".rowReletedRecord");var f={sourceModule:g.data("module")};showQuickCreateForm(c.data("module"),g.data("id"),f)})}function registerAddRecord(a){var b=a.find("#mailActionBarID").val();a.find("button.addRecord").click(function(d){var c=$(d.currentTarget).closest(".col");showQuickCreateForm(c.find(".module").val(),b)})}function removeRecord(a){var c=$("#mailActionBarID").val();var b={};b.data={module:"OSSMail",action:"executeActions",mode:"removeRelated",params:{mailId:c,crmid:a}};b.async=false;b.dataType="json";window.crm.AppConnector.request(b).then(function(f){var e=f.result;if(e.success){var d={text:e.data,type:"info",animation:"show"}}else{var d={text:e.data,animation:"show"}}window.crm.Vtiger_Helper_Js.showPnotify(d);loadActionBar()})}function showPopup(e,c,d){d.newModule=e.module;var a=jQuery.Event(window.crm.Vtiger_Edit_Js.preReferencePopUpOpenEvent);c.trigger(a);var b={};show(e,function(g){var f=JSON.parse(g);for(var i in f){var g={name:f[i].name,id:i};c.val(g.id)}d.newCrmId=g.id;var h={};h.data={module:"OSSMail",action:"executeActions",mode:"addRelated",params:d};h.async=false;h.dataType="json";window.crm.AppConnector.request(h).then(function(l){var k=l.result;if(k.success){var j={text:k.data,type:"info",animation:"show"}}else{var j={text:k.data,animation:"show"}}window.crm.Vtiger_Helper_Js.showPnotify(j);loadActionBar()})})}function showQuickCreateForm(a,f,d){var i=$("#ytActionBarContent");if(d==undefined){var d={}}var e={};if(d.sourceModule){var g=d.sourceModule}else{var g="OSSMailView"}var m=function(p){var n,o,q;$('').appendTo(p);$('').appendTo(p);$('').appendTo(p)};var l=JSON.parse(i.find("#modulesLevel0").val());var b=JSON.parse(i.find("#modulesLevel1").val());var h=JSON.parse(i.find("#modulesLevel2").val());if($.inArray(g,l)>=0){e.link=f}if($.inArray(g,b)>=0){e.process=f}if($.inArray(g,h)>=0){e.subprocess=f}if(a=="Leads"){e.company=rcmail.env.fromName}if(a=="Leads"||a=="Contacts"){e.lastname=rcmail.env.fromName}if(a=="Project"){e.projectname=rcmail.env.subject}if(a=="HelpDesk"){e.ticket_title=rcmail.env.subject}if(a=="Products"){e.productname=rcmail.env.subject}if(a=="Services"){e.servicename=rcmail.env.subject}e.email=rcmail.env.fromMail;e.email1=rcmail.env.fromMail;e.description=$("#messagebody").text();var k=function(n){loadActionBar()};e.sourceModule=g;e.sourceRecord=f;e.relationOperation=true;var c={callbackFunction:k,callbackPostShown:m,data:e,noCache:true};var j=new window.crm.Vtiger_Header_Js();j.quickCreateModule(a,c)}function show(c,d,i,f,b){var h=window.crm.Vtiger_Popup_Js.getInstance();if(typeof c=="undefined"){c={}}if(typeof c=="object"&&(typeof c.view=="undefined")){c.view="Popup"}if(typeof f=="undefined"){f="postSelection"+Math.floor(Math.random()*10000)}if(typeof i=="undefined"){i="test"}if(typeof c=="object"){c.triggerEventName=f}else{c+="&triggerEventName="+f}var e=(typeof c=="string")?c:window.crm.jQuery.param(c);var a=c.url+e;var g=window.crm.window.open(a,i,"width=800,height=650,resizable=0,scrollbars=1");if(typeof h.destroy=="function"){h.destroy()}window.crm.jQuery.initWindowMsg();if(typeof d!="undefined"){h.retrieveSelectedRecords(d,f)}if(typeof b=="function"){window.crm.jQuery.windowMsg("Vtiger.OnPopupWindowLoad.Event",function(j){b(j)})}return g}function getCrmWindow(){if(opener!==null){return opener.parent}else{if(typeof parent.app=="object"){return parent}else{if(typeof parent.parent.app=="object"){return parent.parent}}}return false}; \ No newline at end of file +window.rcmail&&rcmail.addEventListener("init",function(a){window.crm=getCrmWindow();loadActionBar();rcmail.env.message_commands.push("yetiforce.importICS");rcmail.register_command("yetiforce.importICS",function(b,c,d){window.crm.AppConnector.request({async:true,dataType:"json",data:{module:"Calendar",action:"ImportICS",ics:b}}).then(function(e){window.crm.Vtiger_Helper_Js.showPnotify({text:e.result,type:"info",animation:"show"});$(c).closest(".icalattachments").remove()})},true)});function loadActionBar(){var a=$("#ytActionBarContent");var b={module:"OSSMail",view:"MailActionBar",uid:rcmail.env.uid,folder:rcmail.env.mailbox,rcId:rcmail.env.user_id};window.crm.AppConnector.request(b).then(function(c){a.find(".ytHeader").html(c);$("#messagecontent").css("top",(a.outerHeight()+$("#messageheader").outerHeight())+"px");registerEvents(a)})}function registerEvents(a){registerAddRecord(a);registerAddReletedRecord(a);registerSelectRecord(a);registerRemoveRecord(a);registerImportMail(a);var b=a.find(".ytHeader .data");a.find(".hideBtn").click(function(){var c=$(this);var d=c.find(".glyphicon");if(c.data("type")=="0"){c.data("type","1");d.removeClass("glyphicon-chevron-up").addClass("glyphicon-chevron-down")}else{c.data("type","0");d.removeClass("glyphicon-chevron-down").addClass("glyphicon-chevron-up")}b.toggle();$(window).trigger("resize")})}function registerImportMail(a){a.find(".importMail").click(function(b){window.crm.Vtiger_Helper_Js.showPnotify({text:window.crm.app.vtranslate("StartedDownloadingEmail"),type:"info"});var c={module:"OSSMailScanner",action:"ImportMail",params:{uid:rcmail.env.uid,folder:rcmail.env.mailbox,rcId:rcmail.env.user_id}};window.crm.AppConnector.request(c).then(function(d){loadActionBar();window.crm.Vtiger_Helper_Js.showPnotify({text:window.crm.app.vtranslate("AddFindEmailInRecord"),type:"success"})})})}function registerRemoveRecord(a){a.find("button.removeRecord").click(function(b){var c=$(b.currentTarget).closest(".rowReletedRecord");removeRecord(c.data("id"))})}function registerSelectRecord(a){var b=a.find("#mailActionBarID").val();a.find("button.selectRecord").click(function(f){var d=jQuery('input[name="tempField"]');var h={mailId:b};if($(this).data("type")==0){var c=$(this).closest(".col").find(".module").val()}else{var c=$(this).data("module");h.crmid=$(this).closest(".rowReletedRecord").data("id");h.mod=$(this).closest(".rowReletedRecord").data("module");h.newModule=c}var g={module:c,src_module:c,src_field:"tempField",src_record:"",url:rcmail.env.site_URL+"index.php?"};showPopup(g,d,h)})}function registerAddReletedRecord(a){var b=a.find("#mailActionBarID").val();a.find("button.addReletedRecord").click(function(d){var c=$(d.currentTarget);var g=c.closest(".rowReletedRecord");var f={sourceModule:g.data("module")};showQuickCreateForm(c.data("module"),g.data("id"),f)})}function registerAddRecord(a){var b=a.find("#mailActionBarID").val();a.find("button.addRecord").click(function(d){var c=$(d.currentTarget).closest(".col");showQuickCreateForm(c.find(".module").val(),b)})}function removeRecord(a){var c=$("#mailActionBarID").val();var b={};b.data={module:"OSSMail",action:"executeActions",mode:"removeRelated",params:{mailId:c,crmid:a}};b.async=false;b.dataType="json";window.crm.AppConnector.request(b).then(function(f){var e=f.result;if(e.success){var d={text:e.data,type:"info",animation:"show"}}else{var d={text:e.data,animation:"show"}}window.crm.Vtiger_Helper_Js.showPnotify(d);loadActionBar()})}function showPopup(e,c,d){d.newModule=e.module;var a=jQuery.Event(window.crm.Vtiger_Edit_Js.preReferencePopUpOpenEvent);c.trigger(a);var b={};show(e,function(g){var f=JSON.parse(g);for(var i in f){var g={name:f[i].name,id:i};c.val(g.id)}d.newCrmId=g.id;var h={};h.data={module:"OSSMail",action:"executeActions",mode:"addRelated",params:d};h.async=false;h.dataType="json";window.crm.AppConnector.request(h).then(function(l){var k=l.result;if(k.success){var j={text:k.data,type:"info",animation:"show"}}else{var j={text:k.data,animation:"show"}}window.crm.Vtiger_Helper_Js.showPnotify(j);loadActionBar()})})}function showQuickCreateForm(b,h,d){var k=$("#ytActionBarContent");if(d==undefined){var d={}}var e={};if(d.sourceModule){var j=d.sourceModule}else{var j="OSSMailView"}var o=function(q){var i,p,r;$('').appendTo(q);$('').appendTo(q);$('').appendTo(q)};var a={link:"modulesLevel0",process:"modulesLevel1",subprocess:"modulesLevel2"};for(var g in a){var f=k.find("#"+a[g]);var n=f.length?JSON.parse(f.val()):[];if($.inArray(j,n)>=0){e[g]=h}}if(b=="Leads"){e.company=rcmail.env.fromName}if(b=="Leads"||b=="Contacts"){e.lastname=rcmail.env.fromName}if(b=="Project"){e.projectname=rcmail.env.subject}if(b=="HelpDesk"){e.ticket_title=rcmail.env.subject}if(b=="Products"){e.productname=rcmail.env.subject}if(b=="Services"){e.servicename=rcmail.env.subject}e.email=rcmail.env.fromMail;e.email1=rcmail.env.fromMail;e.description=$("#messagebody").text();var m=function(i){loadActionBar()};e.sourceModule=j;e.sourceRecord=h;e.relationOperation=true;var c={callbackFunction:m,callbackPostShown:o,data:e,noCache:true};var l=new window.crm.Vtiger_Header_Js();l.quickCreateModule(b,c)}function show(c,d,i,f,b){var h=window.crm.Vtiger_Popup_Js.getInstance();if(typeof c=="undefined"){c={}}if(typeof c=="object"&&(typeof c.view=="undefined")){c.view="Popup"}if(typeof f=="undefined"){f="postSelection"+Math.floor(Math.random()*10000)}if(typeof i=="undefined"){i="test"}if(typeof c=="object"){c.triggerEventName=f}else{c+="&triggerEventName="+f}var e=(typeof c=="string")?c:window.crm.jQuery.param(c);var a=c.url+e;var g=window.crm.window.open(a,i,"width=800,height=650,resizable=0,scrollbars=1");if(typeof h.destroy=="function"){h.destroy()}window.crm.jQuery.initWindowMsg();if(typeof d!="undefined"){h.retrieveSelectedRecords(d,f)}if(typeof b=="function"){window.crm.jQuery.windowMsg("Vtiger.OnPopupWindowLoad.Event",function(j){b(j)})}return g}function getCrmWindow(){if(opener!==null){return opener.parent}else{if(typeof parent.app=="object"){return parent}else{if(typeof parent.parent.app=="object"){return parent.parent}}}return false}; \ No newline at end of file diff --git a/plugins/yetiforce/yetiforce.php b/plugins/yetiforce/yetiforce.php index 91a628ca..8a4a2cd8 100644 --- a/plugins/yetiforce/yetiforce.php +++ b/plugins/yetiforce/yetiforce.php @@ -12,6 +12,7 @@ class yetiforce extends rcube_plugin private $rc; private $autologin; private $currentUser; + private $viewData = []; public function init() { @@ -23,14 +24,28 @@ public function init() if ($this->rc->task == 'mail') { $this->register_action('plugin.yetiforce.addFilesToMail', [$this, 'addFilesToMail']); $this->rc->output->set_env('site_URL', $this->rc->config->get('site_URL')); + $this->include_stylesheet($this->rc->config->get('site_URL') . 'layouts/basic/skins/icons/userIcons.css'); + + $currentPath = getcwd(); + chdir($this->rc->config->get('root_directory')); + $this->loadCurrentUser(); if ($this->rc->action == 'compose') { + $composeAddressModules = []; + foreach (AppConfig::module('Email', 'RC_COMPOSE_ADDRESS_MODULES') as $moduleName) { + if (\App\Privilege::isPermitted($moduleName)) { + $composeAddressModules[$moduleName] = \includes\Language::translate($moduleName, $moduleName); + } + } + $this->viewData['compose']['composeAddressModules'] = $composeAddressModules; + $this->add_texts('localization/', false); $this->include_script('compose.js'); $this->add_hook('message_compose_body', [$this, 'messageComposeBody']); $this->add_hook('message_compose', [$this, 'messageComposeHead']); $this->add_hook('render_page', [$this, 'loadSignature']); + $this->add_hook('template_object_yt_adress_button', [$this, 'ytAdressButton']); $id = rcube_utils::get_input_value('_id', rcube_utils::INPUT_GPC); if ($id && isset($_SESSION['compose_data_' . $id]['param']['crmmodule'])) { @@ -46,10 +61,17 @@ public function init() if ($this->rc->action == 'preview' || $this->rc->action == 'show') { $this->include_script('preview.js'); $this->include_stylesheet($this->rc->config->get('site_URL') . 'libraries/bootstrap3/css/glyphicon.css'); - $this->include_stylesheet($this->rc->config->get('site_URL') . 'layouts/basic/skins/icons/userIcons.css'); $this->include_stylesheet('preview.css'); $this->add_hook('message_load', [$this, 'messageLoad']); } + if(empty($this->rc->action)){ + $this->rc->output->set_env('orientationPanelView', AppConfig::module('Email', 'ORIENTATION_PANEL_VIEW')); + $this->include_script('colResizable.js'); + $this->include_script('list.js'); + } + + + chdir($currentPath); } } @@ -117,6 +139,20 @@ public function loginAfter($args) } if ($row = $this->getAutoLogin()) { $_SESSION['crm']['id'] = $row['cuid']; + if (isset($row['params']['language'])) { + $languages = $this->rc->list_languages(); + $lang = explode('_', $row['params']['language']); + $lang[1] = strtoupper($lang[1]); + $lang = implode('_', $lang); + if (!isset($languages[$lang])) { + $lang = substr($lang, 0, 2); + } + if (isset($languages[$lang])) { + $this->rc->config->set('language', $lang); + $this->rc->load_language($lang); + $this->rc->user->save_prefs(['language' => $lang]); + } + } } return $args; } @@ -146,7 +182,6 @@ public function messageComposeHead($args) $db = $this->rc->get_dbh(); global $COMPOSE_ID; - $compose = &$_SESSION['compose_data_' . $COMPOSE_ID]; $composeKey = rcube_utils::get_input_value('_composeKey', rcube_utils::INPUT_GET); $result = $db->query('SELECT * FROM `u_yf_mail_compose_data` WHERE `key` = ?', $composeKey); $params = $db->fetch_assoc($result); @@ -155,7 +190,7 @@ public function messageComposeHead($args) $params = json_decode($params['data'], true); foreach ($params as $key => &$value) { - $compose['param'][$key] = $value; + $args['param'][$key] = $value; } if ((isset($params['crmmodule']) && $params['crmmodule'] == 'Documents') || (isset($params['filePath']) && $params['filePath'])) { $userid = $this->rc->user->ID; @@ -173,8 +208,8 @@ public function messageComposeHead($args) $mailId = $params['mailId']; $result = $db->query('SELECT content,reply_to_email,date,from_email,to_email,cc_email,subject FROM vtiger_ossmailview WHERE ossmailviewid = ?;', $mailId); $row = $db->fetch_assoc($result); - $compose['param']['type'] = $params['type']; - $compose['param']['mailData'] = $row; + $args['param']['type'] = $params['type']; + $args['param']['mailData'] = $row; switch ($params['type']) { case 'replyAll': $cc = $row['to_email']; @@ -196,8 +231,18 @@ public function messageComposeHead($args) $subject = 'Fwd: ' . $row['subject']; break; } - if (!empty($params['subject'])) { - $subject .= ' [' . $params['subject'] . ']'; + if (!empty($params['recordNumber']) && !empty($params['crmmodule'])) { + $currentPath = getcwd(); + chdir($this->rc->config->get('root_directory')); + $this->loadCurrentUser(); + + $subjectNumber = \includes\fields\Email::findRecordNumber($subject, $params['crmmodule']); + $recordNumber = \includes\fields\Email::findRecordNumber('[' . $params['recordNumber'] . ']', $params['crmmodule']); + if ($subject === false || ($subject !== false && $subjectNumber != $recordNumber)) { + $subject .= ' [' . $params['recordNumber'] . ']'; + } + + chdir($currentPath); } $args['param']['to'] = $to; $args['param']['cc'] = $cc; @@ -289,7 +334,7 @@ public function messageComposeBody($args) public function loadSignature($response) { global $OUTPUT, $MESSAGE; - if ($this->rc->config->get('enable_variables_in_signature')) { + if ($this->rc->config->get('enable_variables_in_signature') && !empty($OUTPUT->get_env('signatures'))) { $signatures = []; foreach ($OUTPUT->get_env('signatures') as $identityId => $signature) { $signatures[$identityId]['text'] = $this->parseVariables($signature['text']); @@ -520,6 +565,7 @@ protected function getAutoLogin() $autologin = false; if ($row = $db->fetch_assoc($sqlResult)) { $autologin = $row; + $autologin['params'] = json_decode($autologin['params'], true); } $this->autologin = $autologin; return $autologin; @@ -551,4 +597,18 @@ protected function loadCurrentUser() vglobal('current_user', $ownerObject); return true; } + + public function ytAdressButton($p) + { + if (empty($this->viewData['compose']['composeAddressModules'])) { + return $p; + } + $content = ''; + foreach ($this->viewData['compose']['composeAddressModules'] as $moduleName => $value) { + $text = html::span(['class' => "userIcon-$moduleName"], '') . ' ' . $value; + $content .= html::a(['class' => 'button', 'data-input' => $p['part'], 'data-module' => $moduleName], $text); + } + $p['content'] = $content; + return $p; + } } diff --git a/program/localization/pl_PL/labels.inc b/program/localization/pl_PL/labels.inc index 3347c5e9..5c210234 100644 --- a/program/localization/pl_PL/labels.inc +++ b/program/localization/pl_PL/labels.inc @@ -1,45 +1,44 @@ /labels.inc | - | | - | Localization file of the Roundcube Webmail client | - | Copyright (C) 2005-2015, The Roundcube Dev Team | - | | - | Licensed under the GNU General Public License version 3 or | - | any later version with exceptions for skins & plugins. | - | See the README file for a full license statement. | - | | - +-----------------------------------------------------------------------+ + +-----------------------------------------------------------------------+ + | localization//labels.inc | + | | + | Localization file of the Roundcube Webmail client | + | Copyright (C) 2005-2015, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ - For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/ -*/ -$labels['welcome'] = 'Witamy w $product'; -$labels['username'] = 'Nazwa'; -$labels['password'] = 'Hasło'; -$labels['server'] = 'Serwer'; -$labels['login'] = 'Zaloguj'; -$labels['logout'] = 'Wyloguj'; -$labels['mail'] = 'Poczta'; + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/ + */ +$labels['welcome'] = 'Witamy w $product'; +$labels['username'] = 'Nazwa'; +$labels['password'] = 'Hasło'; +$labels['server'] = 'Serwer'; +$labels['login'] = 'Zaloguj'; +$labels['logout'] = 'Wyloguj'; +$labels['mail'] = 'Poczta'; $labels['settings'] = 'Ustawienia'; $labels['addressbook'] = 'Książka adresowa'; -$labels['inbox'] = 'Odebrane'; +$labels['inbox'] = 'Odebrane'; $labels['drafts'] = 'Kopie robocze'; -$labels['sent'] = 'Wysłane'; -$labels['trash'] = 'Kosz'; -$labels['junk'] = 'Spam'; +$labels['sent'] = 'Wysłane'; +$labels['trash'] = 'Kosz'; +$labels['junk'] = 'Spam'; $labels['show_real_foldernames'] = 'Pokaż prawdziwe nazwy dla folderów specjalnych'; $labels['subject'] = 'Temat'; -$labels['from'] = 'Od'; -$labels['sender'] = 'Nadawca'; -$labels['to'] = 'Do'; -$labels['cc'] = 'Kopia'; -$labels['bcc'] = 'Ukryta kopia'; +$labels['from'] = 'Od'; +$labels['sender'] = 'Nadawca'; +$labels['to'] = 'Do'; +$labels['cc'] = 'Kopia'; +$labels['bcc'] = 'Ukryta kopia'; $labels['replyto'] = 'Odpowiedź do'; $labels['followupto'] = 'Kontynuacja do'; -$labels['date'] = 'Data'; -$labels['size'] = 'Rozmiar'; +$labels['date'] = 'Data'; +$labels['size'] = 'Rozmiar'; $labels['priority'] = 'Priorytet'; $labels['organization'] = 'Organizacja'; $labels['readstatus'] = 'Przeczytano'; @@ -49,12 +48,12 @@ $labels['messagesfromto'] = 'Wiadomości od $from do $to z $count'; $labels['threadsfromto'] = 'Wątki od $from do $to z $count'; $labels['messagenrof'] = 'Wiadomość $nr z $count'; $labels['fromtoshort'] = '$from - $to z $count'; -$labels['copy'] = 'Kopiuj'; -$labels['move'] = 'Przenieś'; -$labels['moveto'] = 'Przenieś do...'; -$labels['copyto'] = 'Kopiuj do...'; +$labels['copy'] = 'Kopiuj'; +$labels['move'] = 'Przenieś'; +$labels['moveto'] = 'Przenieś do...'; +$labels['copyto'] = 'Kopiuj do...'; $labels['download'] = 'Pobierz'; -$labels['open'] = 'Otwórz'; +$labels['open'] = 'Otwórz'; $labels['showattachment'] = 'Pokaż'; $labels['showanyway'] = 'Pokaż'; $labels['filename'] = 'Nazwa pliku'; @@ -67,70 +66,70 @@ $labels['wed'] = 'Śr'; $labels['thu'] = 'Czw'; $labels['fri'] = 'Pt'; $labels['sat'] = 'Sb'; -$labels['sunday'] = 'Niedziela'; -$labels['monday'] = 'Poniedziałek'; -$labels['tuesday'] = 'Wtorek'; +$labels['sunday'] = 'Niedziela'; +$labels['monday'] = 'Poniedziałek'; +$labels['tuesday'] = 'Wtorek'; $labels['wednesday'] = 'Środa'; -$labels['thursday'] = 'Czwartek'; -$labels['friday'] = 'Piątek'; -$labels['saturday'] = 'Sobota'; -$labels['jan'] = 'Sty'; -$labels['feb'] = 'Lut'; -$labels['mar'] = 'Mar'; -$labels['apr'] = 'Kwi'; -$labels['may'] = 'Maj'; -$labels['jun'] = 'Cze'; -$labels['jul'] = 'Lip'; -$labels['aug'] = 'Sie'; -$labels['sep'] = 'Wrz'; -$labels['oct'] = 'Paź'; -$labels['nov'] = 'Lis'; -$labels['dec'] = 'Gru'; -$labels['longjan'] = 'styczeń'; -$labels['longfeb'] = 'luty'; -$labels['longmar'] = 'marzec'; -$labels['longapr'] = 'kwiecień'; -$labels['longmay'] = 'maj'; -$labels['longjun'] = 'czerwiec'; -$labels['longjul'] = 'lipiec'; -$labels['longaug'] = 'sierpień'; -$labels['longsep'] = 'wrzesień'; -$labels['longoct'] = 'październik'; -$labels['longnov'] = 'listopad'; -$labels['longdec'] = 'grudzień'; +$labels['thursday'] = 'Czwartek'; +$labels['friday'] = 'Piątek'; +$labels['saturday'] = 'Sobota'; +$labels['jan'] = 'Sty'; +$labels['feb'] = 'Lut'; +$labels['mar'] = 'Mar'; +$labels['apr'] = 'Kwi'; +$labels['may'] = 'Maj'; +$labels['jun'] = 'Cze'; +$labels['jul'] = 'Lip'; +$labels['aug'] = 'Sie'; +$labels['sep'] = 'Wrz'; +$labels['oct'] = 'Paź'; +$labels['nov'] = 'Lis'; +$labels['dec'] = 'Gru'; +$labels['longjan'] = 'styczeń'; +$labels['longfeb'] = 'luty'; +$labels['longmar'] = 'marzec'; +$labels['longapr'] = 'kwiecień'; +$labels['longmay'] = 'maj'; +$labels['longjun'] = 'czerwiec'; +$labels['longjul'] = 'lipiec'; +$labels['longaug'] = 'sierpień'; +$labels['longsep'] = 'wrzesień'; +$labels['longoct'] = 'październik'; +$labels['longnov'] = 'listopad'; +$labels['longdec'] = 'grudzień'; $labels['today'] = 'Dzisiaj'; -$labels['refresh'] = 'Odśwież'; -$labels['checkmail'] = 'Sprawdź skrzynkę'; -$labels['compose'] = 'Utwórz'; -$labels['writenewmessage'] = 'Utwórz nową wiadomość'; -$labels['reply'] = 'Odpowiedz'; -$labels['replytomessage'] = 'Odpowiedz nadawcy'; +$labels['refresh'] = 'Odśwież'; +$labels['checkmail'] = 'Sprawdź skrzynkę'; +$labels['compose'] = 'Utwórz'; +$labels['writenewmessage'] = 'Utwórz nową wiadomość'; +$labels['reply'] = 'Odpowiedz'; +$labels['replytomessage'] = 'Odpowiedz nadawcy'; $labels['replytoallmessage'] = 'Odpowiedz wszystkim'; -$labels['replyall'] = 'Odpowiedz wszystkim'; -$labels['replylist'] = 'Odpowiedz na listę'; -$labels['forward'] = 'Przekaż'; -$labels['forwardinline'] = 'Prześlij w treści'; +$labels['replyall'] = 'Odpowiedz wszystkim'; +$labels['replylist'] = 'Odpowiedz na listę'; +$labels['forward'] = 'Przekaż'; +$labels['forwardinline'] = 'Prześlij w treści'; $labels['forwardattachment'] = 'Prześlij jako załącznik'; -$labels['forwardmessage'] = 'Prześlij dalej'; -$labels['deletemessage'] = 'Usuń wiadomości'; +$labels['forwardmessage'] = 'Prześlij dalej'; +$labels['deletemessage'] = 'Usuń wiadomości'; $labels['movemessagetotrash'] = 'Przenieś wiadomości do Kosza'; -$labels['printmessage'] = 'Drukuj wiadomość'; -$labels['previousmessage'] = 'Poprzednia wiadomość'; -$labels['firstmessage'] = 'Pierwsza wiadomość'; -$labels['nextmessage'] = 'Następna wiadomość'; -$labels['lastmessage'] = 'Ostatnia wiadomość'; -$labels['backtolist'] = 'Pokaż listę wiadomości'; -$labels['viewsource'] = 'Pokaż źródło'; -$labels['mark'] = 'Oznacz'; -$labels['markmessages'] = 'Oznacz wiadomości'; -$labels['markread'] = 'Jako przeczytane'; -$labels['markunread'] = 'Jako nieprzeczytane'; -$labels['markflagged'] = 'Jako oflagowane'; -$labels['markunflagged'] = 'Jako nieoflagowane'; -$labels['moreactions'] = 'Więcej akcji...'; -$labels['more'] = 'Więcej'; -$labels['back'] = 'Wstecz'; -$labels['options'] = 'Ustawienia'; +$labels['printmessage'] = 'Drukuj wiadomość'; +$labels['previousmessage'] = 'Poprzednia wiadomość'; +$labels['firstmessage'] = 'Pierwsza wiadomość'; +$labels['nextmessage'] = 'Następna wiadomość'; +$labels['lastmessage'] = 'Ostatnia wiadomość'; +$labels['backtolist'] = 'Pokaż listę wiadomości'; +$labels['viewsource'] = 'Pokaż źródło'; +$labels['mark'] = 'Oznacz'; +$labels['markmessages'] = 'Oznacz wiadomości'; +$labels['markread'] = 'Jako przeczytane'; +$labels['markunread'] = 'Jako nieprzeczytane'; +$labels['markflagged'] = 'Jako oflagowane'; +$labels['markunflagged'] = 'Jako nieoflagowane'; +$labels['moreactions'] = 'Więcej akcji...'; +$labels['more'] = 'Więcej'; +$labels['back'] = 'Wstecz'; +$labels['options'] = 'Ustawienia'; $labels['first'] = 'Pierwsza'; $labels['last'] = 'Ostatnia'; $labels['previous'] = 'Poprzednia'; @@ -177,18 +176,18 @@ $labels['compact'] = 'Porządkuj'; $labels['empty'] = 'Opróżnij'; $labels['importmessages'] = 'Import wiadomości'; $labels['quota'] = 'Użyte miejsce'; -$labels['unknown'] = 'nieznane'; -$labels['unlimited'] = 'bez limitu'; +$labels['unknown'] = 'nieznane'; +$labels['unlimited'] = 'bez limitu'; $labels['quotatype'] = 'Typ limitu'; $labels['quotatotal'] = 'Ograniczenie'; $labels['quotaused'] = 'Używany'; $labels['quotastorage'] = 'Przestrzeń dyskowa'; $labels['quotamessage'] = 'Ilość wiadomości'; -$labels['quicksearch'] = 'Szybkie wyszukiwanie'; -$labels['resetsearch'] = 'Wyczyść filtr'; -$labels['searchmod'] = 'Parametry wyszukiwania'; -$labels['msgtext'] = 'Cała wiadomość'; -$labels['body'] = 'Treść'; +$labels['quicksearch'] = 'Szybkie wyszukiwanie'; +$labels['resetsearch'] = 'Wyczyść filtr'; +$labels['searchmod'] = 'Parametry wyszukiwania'; +$labels['msgtext'] = 'Cała wiadomość'; +$labels['body'] = 'Treść'; $labels['type'] = 'Typ'; $labels['namex'] = 'Nazwa'; $labels['searchscope'] = 'Zakres'; @@ -199,26 +198,26 @@ $labels['openinextwin'] = 'Otwórz w nowym oknie'; $labels['emlsave'] = 'Pobierz (.eml)'; $labels['changeformattext'] = 'Wyświetl w formacie tekstowym'; $labels['changeformathtml'] = 'Wyświetl w formacie HTML'; -$labels['editasnew'] = 'Edytuj jako nową'; -$labels['send'] = 'Wyślij'; -$labels['sendmessage'] = 'Wyślij teraz'; -$labels['savemessage'] = 'Zapisz kopię roboczą'; -$labels['addattachment'] = 'Dołącz plik'; -$labels['charset'] = 'Kodowanie znaków'; -$labels['editortype'] = 'Typ edytora'; -$labels['returnreceipt'] = 'Potwierdzenie odbioru'; -$labels['dsn'] = 'Status dostarczenia (DSN)'; +$labels['editasnew'] = 'Edytuj jako nową'; +$labels['send'] = 'Wyślij'; +$labels['sendmessage'] = 'Wyślij teraz'; +$labels['savemessage'] = 'Zapisz kopię roboczą'; +$labels['addattachment'] = 'Dołącz plik'; +$labels['charset'] = 'Kodowanie znaków'; +$labels['editortype'] = 'Typ edytora'; +$labels['returnreceipt'] = 'Potwierdzenie odbioru'; +$labels['dsn'] = 'Status dostarczenia (DSN)'; $labels['mailreplyintro'] = 'W dniu $date, $sender napisał(a):'; $labels['originalmessage'] = 'Wiadomość oryginalna'; -$labels['selectimage'] = 'Wybierz obraz'; -$labels['addimage'] = 'Dodaj obraz'; -$labels['selectmedia'] = 'Wybierz film'; -$labels['addmedia'] = 'Dodaj film'; -$labels['editidents'] = 'Edytuj tożsamości'; -$labels['spellcheck'] = 'Pisownia'; +$labels['selectimage'] = 'Wybierz obraz'; +$labels['addimage'] = 'Dodaj obraz'; +$labels['selectmedia'] = 'Wybierz film'; +$labels['addmedia'] = 'Dodaj film'; +$labels['editidents'] = 'Edytuj tożsamości'; +$labels['spellcheck'] = 'Pisownia'; $labels['checkspelling'] = 'Sprawdź pisownię'; $labels['resumeediting'] = 'Zakończ sprawdzanie pisowni'; -$labels['revertto'] = 'Powróć do'; +$labels['revertto'] = 'Powróć do'; $labels['restore'] = 'Przywróć'; $labels['restoremessage'] = 'Przyrócić wiadomość?'; $labels['ignore'] = 'Ignoruj'; @@ -235,19 +234,19 @@ $labels['attach'] = 'Załącz'; $labels['attachments'] = 'Załączniki'; $labels['upload'] = 'Prześlij'; $labels['uploadprogress'] = '$percent ($current z $total)'; -$labels['close'] = 'Zamknij'; -$labels['messageoptions'] = 'Opcje wiadomości...'; +$labels['close'] = 'Zamknij'; +$labels['messageoptions'] = 'Opcje wiadomości...'; $labels['togglecomposeoptions'] = 'Przestaw opcje kompozycji'; -$labels['low'] = 'Bardzo niski'; -$labels['lowest'] = 'Niski'; -$labels['normal'] = 'Normalny'; -$labels['high'] = 'Wysoki'; +$labels['low'] = 'Bardzo niski'; +$labels['lowest'] = 'Niski'; +$labels['normal'] = 'Normalny'; +$labels['high'] = 'Wysoki'; $labels['highest'] = 'Bardzo wysoki'; -$labels['nosubject'] = '(brak tematu)'; +$labels['nosubject'] = '(brak tematu)'; $labels['showimages'] = 'Wyświetl obrazki'; $labels['alwaysshow'] = 'Zawsze wyświetlaj obrazki od $sender'; -$labels['isdraft'] = 'To jest kopia robocza wiadomości.'; -$labels['andnmore'] = '$nr więcej...'; +$labels['isdraft'] = 'To jest kopia robocza wiadomości.'; +$labels['andnmore'] = '$nr więcej...'; $labels['togglemoreheaders'] = 'Pokaż więcej nagłówków wiadomości'; $labels['togglefullheaders'] = 'Przełącz podgląd nagłówków wiadomości'; $labels['htmltoggle'] = 'HTML'; @@ -263,31 +262,31 @@ $labels['mdnrequest'] = 'Nadawca zażądał potwierdzenia przeczytania tej wiado $labels['receiptread'] = 'Potwierdzenie otrzymania'; $labels['yourmessage'] = 'To jest potwierdzenie dostarczenia Twojej wiadomości'; $labels['receiptnote'] = 'Uwaga: To potwierdzenie dostarczenia wiadomości oznacza tylko, że wiadomość została wyświetlona na komputerze adresata. Nie ma żadnej gwarancji, że odbiorca przeczytał czy też zrozumiał treść wiadomości.'; -$labels['name'] = 'Nazwa'; -$labels['firstname'] = 'Imię'; -$labels['surname'] = 'Nazwisko'; -$labels['middlename'] = 'Drugie imię'; -$labels['nameprefix'] = 'Prefiks'; -$labels['namesuffix'] = 'Sufiks'; -$labels['nickname'] = 'Pseudonim'; -$labels['jobtitle'] = 'Zawód'; -$labels['department'] = 'Oddział'; -$labels['gender'] = 'Płeć'; -$labels['maidenname'] = 'N. panieńskie'; -$labels['email'] = 'E-Mail'; -$labels['phone'] = 'Telefon'; -$labels['address'] = 'Adres'; -$labels['street'] = 'Ulica'; -$labels['locality'] = 'Miasto'; -$labels['zipcode'] = 'Kod'; -$labels['region'] = 'Region'; -$labels['country'] = 'Kraj'; -$labels['birthday'] = 'Urodziny'; -$labels['anniversary'] = 'Jubileusz'; -$labels['website'] = 'Strona internetowa'; +$labels['name'] = 'Nazwa'; +$labels['firstname'] = 'Imię'; +$labels['surname'] = 'Nazwisko'; +$labels['middlename'] = 'Drugie imię'; +$labels['nameprefix'] = 'Prefiks'; +$labels['namesuffix'] = 'Sufiks'; +$labels['nickname'] = 'Pseudonim'; +$labels['jobtitle'] = 'Zawód'; +$labels['department'] = 'Oddział'; +$labels['gender'] = 'Płeć'; +$labels['maidenname'] = 'N. panieńskie'; +$labels['email'] = 'E-Mail'; +$labels['phone'] = 'Telefon'; +$labels['address'] = 'Adres'; +$labels['street'] = 'Ulica'; +$labels['locality'] = 'Miasto'; +$labels['zipcode'] = 'Kod'; +$labels['region'] = 'Region'; +$labels['country'] = 'Kraj'; +$labels['birthday'] = 'Urodziny'; +$labels['anniversary'] = 'Jubileusz'; +$labels['website'] = 'Strona internetowa'; $labels['instantmessenger'] = 'Komunikator'; $labels['notes'] = 'Notatki'; -$labels['male'] = 'mężczyzna'; +$labels['male'] = 'mężczyzna'; $labels['female'] = 'kobieta'; $labels['manager'] = 'Kierownik'; $labels['assistant'] = 'Asystent'; @@ -298,18 +297,18 @@ $labels['searchresult'] = 'Wyniki wyszukiwania'; $labels['advsearch'] = 'Wyszukiwanie zaawansowane'; $labels['advanced'] = 'Zaawansowane'; $labels['other'] = 'Inne'; -$labels['typehome'] = 'Dom'; -$labels['typework'] = 'Praca'; -$labels['typeother'] = 'Inne'; -$labels['typemobile'] = 'Komórkowy'; -$labels['typemain'] = 'Główny'; -$labels['typehomefax'] = 'Fax domowy'; -$labels['typeworkfax'] = 'Fax firmowy'; -$labels['typecar'] = 'Samochód'; -$labels['typepager'] = 'Pager'; -$labels['typevideo'] = 'Wideo'; -$labels['typeassistant'] = 'Asystent'; -$labels['typehomepage'] = 'Strona domowa'; +$labels['typehome'] = 'Dom'; +$labels['typework'] = 'Praca'; +$labels['typeother'] = 'Inne'; +$labels['typemobile'] = 'Komórkowy'; +$labels['typemain'] = 'Główny'; +$labels['typehomefax'] = 'Fax domowy'; +$labels['typeworkfax'] = 'Fax firmowy'; +$labels['typecar'] = 'Samochód'; +$labels['typepager'] = 'Pager'; +$labels['typevideo'] = 'Wideo'; +$labels['typeassistant'] = 'Asystent'; +$labels['typehomepage'] = 'Strona domowa'; $labels['typeblog'] = 'Blog'; $labels['typeprofile'] = 'Profil'; $labels['addfield'] = 'Dodaj pole...'; @@ -320,33 +319,33 @@ $labels['contactproperties'] = 'Właściwości'; $labels['contactnameandorg'] = 'Nazwa i organizacja'; $labels['personalinfo'] = 'Informacje osobiste'; $labels['contactphoto'] = 'Zdjęcie kontaktu'; -$labels['edit'] = 'Edytuj'; +$labels['edit'] = 'Edytuj'; $labels['cancel'] = 'Anuluj'; -$labels['save'] = 'Zapisz'; +$labels['save'] = 'Zapisz'; $labels['delete'] = 'Usuń'; $labels['rename'] = 'Zmień nazwę'; $labels['addphoto'] = 'Dodaj'; $labels['replacephoto'] = 'Zamień'; $labels['uploadphoto'] = 'Wyślij zdjęcie'; -$labels['newcontact'] = 'Dodaj nowy kontakt'; -$labels['deletecontact'] = 'Usuń zaznaczone kontakty'; -$labels['composeto'] = 'Utwórz wiadomość do wybranych kontaktów'; +$labels['newcontact'] = 'Dodaj nowy kontakt'; +$labels['deletecontact'] = 'Usuń zaznaczone kontakty'; +$labels['composeto'] = 'Utwórz wiadomość do wybranych kontaktów'; $labels['contactsfromto'] = 'Kontakty od $from do $to z $count'; -$labels['print'] = 'Drukuj'; -$labels['export'] = 'Eksportuj'; -$labels['exportall'] = 'Eksportuj wszystkie'; -$labels['exportsel'] = 'Eksportuj zaznaczone'; -$labels['exportvcards'] = 'Eksport kontaktów w formacie vCard'; -$labels['newgroup'] = 'Utwórz nową grupę'; -$labels['addgroup'] = 'Dodaj grupę'; -$labels['grouprename'] = 'Zmień nazwę grupy'; -$labels['groupdelete'] = 'Usuń grupę'; +$labels['print'] = 'Drukuj'; +$labels['export'] = 'Eksportuj'; +$labels['exportall'] = 'Eksportuj wszystkie'; +$labels['exportsel'] = 'Eksportuj zaznaczone'; +$labels['exportvcards'] = 'Eksport kontaktów w formacie vCard'; +$labels['newgroup'] = 'Utwórz nową grupę'; +$labels['addgroup'] = 'Dodaj grupę'; +$labels['grouprename'] = 'Zmień nazwę grupy'; +$labels['groupdelete'] = 'Usuń grupę'; $labels['groupremoveselected'] = 'Usuń wybrane kontakty z grupy'; -$labels['uponelevel'] = 'Jeden poziom w górę'; -$labels['previouspage'] = 'Poprzednia strona'; -$labels['firstpage'] = 'Pierwsza strona'; -$labels['nextpage'] = 'Następna strona'; -$labels['lastpage'] = 'Ostatnia strona'; +$labels['uponelevel'] = 'Jeden poziom w górę'; +$labels['previouspage'] = 'Poprzednia strona'; +$labels['firstpage'] = 'Pierwsza strona'; +$labels['nextpage'] = 'Następna strona'; +$labels['lastpage'] = 'Ostatnia strona'; $labels['group'] = 'Grupa'; $labels['groups'] = 'Grupy'; $labels['listgroup'] = 'Członkowie grupy'; @@ -381,13 +380,13 @@ $labels['digitalsig'] = 'Podpis cyfrowy'; $labels['dateformat'] = 'Format daty'; $labels['timeformat'] = 'Format czasu'; $labels['prettydate'] = 'Ładne daty'; -$labels['setdefault'] = 'Domyślna'; -$labels['autodetect'] = '- wybór automatyczny -'; -$labels['language'] = 'Język'; -$labels['timezone'] = 'Strefa czasowa'; -$labels['pagesize'] = 'Liczba wierszy na stronie'; +$labels['setdefault'] = 'Domyślna'; +$labels['autodetect'] = '- wybór automatyczny -'; +$labels['language'] = 'Język'; +$labels['timezone'] = 'Strefa czasowa'; +$labels['pagesize'] = 'Liczba wierszy na stronie'; $labels['signature'] = 'Podpis'; -$labels['dstactive'] = 'Czas letni'; +$labels['dstactive'] = 'Czas letni'; $labels['showinextwin'] = 'Otwórz wiadomość w nowym oknie'; $labels['composeextwin'] = 'Twórz w nowym oknie'; $labels['htmleditor'] = 'Twórz wiadomości HTML'; @@ -417,11 +416,11 @@ $labels['showremoteimages'] = 'Wyświetlaj obrazki w wiadomościach'; $labels['fromknownsenders'] = 'od znanych nadawców'; $labels['always'] = 'zawsze'; $labels['showinlineimages'] = 'Wyświetlaj załączone obrazki pod treścią wiadomości'; -$labels['autosavedraft'] = 'Automatycznie zapisuj tworzoną wiadomość'; -$labels['everynminutes'] = 'co $n minut(y)'; -$labels['refreshinterval'] = 'Odświeżanie (sprawdzanie nowych wiadomości, etc.)'; -$labels['never'] = 'nigdy'; -$labels['immediately'] = 'natychmiast'; +$labels['autosavedraft'] = 'Automatycznie zapisuj tworzoną wiadomość'; +$labels['everynminutes'] = 'co $n minut(y)'; +$labels['refreshinterval'] = 'Odświeżanie (sprawdzanie nowych wiadomości, etc.)'; +$labels['never'] = 'nigdy'; +$labels['immediately'] = 'natychmiast'; $labels['messagesdisplaying'] = 'Wyświetlanie wiadomości'; $labels['messagescomposition'] = 'Tworzenie wiadomości'; $labels['mimeparamfolding'] = 'Stosuj nazwy załączników zgodne z'; @@ -451,8 +450,8 @@ $labels['autoaddsignature'] = 'Automatycznie wstaw podpis'; $labels['newmessageonly'] = 'tylko dla nowych wiadomości'; $labels['replyandforwardonly'] = 'tylko dla przekazywania i odpowiedzi'; $labels['insertsignature'] = 'Wstaw podpis'; -$labels['previewpanemarkread'] = 'Oznacz podglądane wiadomości jako przeczytane'; -$labels['afternseconds'] = 'po $n sekundach'; +$labels['previewpanemarkread'] = 'Oznacz podglądane wiadomości jako przeczytane'; +$labels['afternseconds'] = 'po $n sekundach'; $labels['reqmdn'] = 'Zawsze żądaj potwierdzenia odbioru'; $labels['reqdsn'] = 'Zawsze żądaj statusu dostarczenia (DSN)'; $labels['replysamefolder'] = 'Umieszczaj odpowiedzi w folderze wiadomości, na którą odpowiadam'; @@ -498,7 +497,7 @@ $labels['namespace.personal'] = 'Osobiste'; $labels['namespace.other'] = 'Innych użytkowników'; $labels['namespace.shared'] = 'Współdzielone'; $labels['sortby'] = 'Sortuj wg'; -$labels['sortasc'] = 'Rosnąco'; +$labels['sortasc'] = 'Rosnąco'; $labels['sortdesc'] = 'Malejąco'; $labels['undo'] = 'Cofnij'; $labels['installedplugins'] = 'Zainstalowane wtyczki'; @@ -583,10 +582,6 @@ $labels['selectmodule'] = 'Wybierz moduł szablonu'; $labels['selecttemplate'] = 'Wybierz szablon'; $labels['tpl'] = 'Szablony'; $labels['vtmodule'] = 'Moduły'; -$labels['module_Contacts'] = 'Kontakty'; -$labels['module_Accounts'] = 'Kontrahenci'; -$labels['module_Leads'] = 'Potencjalni klienci'; -$labels['module_Vendors'] = 'Dostawcy'; -$labels['module_OSSEmployees'] = 'Pracownicy'; // <-------- YetiForce Sp. z o.o. --------> + ?> diff --git a/skins/yetiforce/templates/compose.html b/skins/yetiforce/templates/compose.html index e7fe5d86..7c505b2a 100644 --- a/skins/yetiforce/templates/compose.html +++ b/skins/yetiforce/templates/compose.html @@ -19,24 +19,24 @@

    @@ -52,146 +52,76 @@

    - - - - - - - - - - -
    - - - - - -
    - - - - - - - - -
    - - - - - -
    + + + + + + + + + + +
    + +
    + + + + + + + + +
    + +
    - - - - - - -
    - - - - - -
    - - - - - - - - -
    - - - - - -
    - - - - - - - - -
    - - - - - -
    - - - - - - - - - - - - - + + + + + + +
    + +
    + + + + + + + + +
    + +
    + + + + + + + + +
    + +
    + + + + + + + + + + + + + @@ -248,11 +178,11 @@

    diff --git a/skins/yetiforce/templates/mail.html b/skins/yetiforce/templates/mail.html index 2c4e0f2c..b769a7a4 100644 --- a/skins/yetiforce/templates/mail.html +++ b/skins/yetiforce/templates/mail.html @@ -83,7 +83,11 @@

    + +
    + +
    +
    diff --git a/skins/yetiforce/ui.js b/skins/yetiforce/ui.js index 6443062b..2b9e1253 100644 --- a/skins/yetiforce/ui.js +++ b/skins/yetiforce/ui.js @@ -226,7 +226,7 @@ function rcube_mail_ui() $('#mailthreadmode').addClass(rcmail.env.threading ? 'selected' : '').click(function(e) { switch_view_mode('thread'); return false; }); mailviewsplit = new rcube_splitter({ id:'mailviewsplitter', p1:'#mailview-top', p2:'#mailview-bottom', - orientation:'h', relative:true, start:310, min:150, size:12, offset:4 }); + orientation:'v', relative:true, start:310, min:560, size:12, offset:4 }); if (previewframe) mailviewsplit.init(); @@ -652,7 +652,7 @@ function rcube_mail_ui() if (visible) { $('#mailview-top').removeClass('fullheight').css({ bottom:'auto' }); - $('#mailview-bottom').css({ height:'auto' }).show(); + $('#mailview-bottom').css({ width:'auto' }).show(); rcmail.env.contentframe = 'messagecontframe'; if (uid = rcmail.message_list.get_single_selection()) @@ -670,8 +670,8 @@ function rcube_mail_ui() rcmail.env.contentframe = null; rcmail.show_contentframe(false); - $('#mailview-top').addClass('fullheight').css({ height:'auto', bottom:'0px' }); - $('#mailview-bottom').css({ top:'auto', height:'0px' }).hide(); + $('#mailview-top').addClass('fullheight').css({ width:'auto', bottom:'0px' }); + $('#mailview-bottom').css({ top:'auto', width:'0px' }).hide(); if (mailviewsplit.handle) mailviewsplit.handle.hide(); diff --git a/skins/yetiforce/ui.min.js b/skins/yetiforce/ui.min.js index 5dfc21a8..edfdf9ac 100644 --- a/skins/yetiforce/ui.min.js +++ b/skins/yetiforce/ui.min.js @@ -1,2 +1,2 @@ -function rcube_mail_ui(){var j={};var f={};var K={forwardmenu:{editable:1},searchmenu:{editable:1,callback:p},attachmentmenu:{},listoptions:{editable:1},groupmenu:{above:1},mailboxmenu:{above:1},spellmenu:{callback:g},"folder-selector":{iconized:1}};var q=this;var B;var M={};var Q;this.set=v;this.init=N;this.init_tabs=D;this.show_about=C;this.show_popup=J;this.toggle_popup=x;this.add_popup=a;this.set_searchmod=e;this.set_searchscope=A;this.show_uploadform=G;this.show_header_row=n;this.hide_header_row=P;this.update_quota=I;this.get_pref=O;this.save_pref=H;this.folder_search_init=i;if(window.$&&document.body){var z=O("minimalmode");if(parseInt(z)||(z===null&&$(window).height()<850)){$(document.body).addClass("minimal")}if(bw.tablet){$("#viewport").attr("content","width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0")}}function v(T,U){j[T]=U}function O(U){if(!Q){Q=rcmail.local_storage_get_item("prefs.larry",{})}if(Q[U]==null){var T=rcmail.get_cookie(U);if(T!=null){Q[U]=T;if(rcmail.local_storage_set_item("prefs.larry",Q)){rcmail.set_cookie(U,T,new Date())}}}return Q[U]}function H(T,V){Q[T]=V;if(!rcmail.local_storage_set_item("prefs.larry",Q)){var U=new Date();U.setYear(U.getFullYear()+1);rcmail.set_cookie(T,V,U)}}function N(){rcmail.addEventListener("message",F);$("#taskbar a").each(function(ad,ae){$(ae).append(''+$(".button-inner",this).html()+"")});$("#taskbar .minmodetoggle").click(function(ae){var ad=$(document.body).toggleClass("minimal").hasClass("minimal");H("minimalmode",ad?1:0);$(window).resize()});if(rcmail.env.task=="mail"){rcmail.addEventListener("menu-open",s).addEventListener("menu-close",s).addEventListener("menu-save",t).addEventListener("responseafterlist",function(ad){c(rcmail.env.threading?"thread":"list",true)}).addEventListener("responseaftersearch",function(ad){c(rcmail.env.threading?"thread":"list",true)});var aa=$("#dragmessagemenu");if(aa.length){rcmail.gui_object("dragmenu","dragmessagemenu");f.dragmenu=aa}if(rcmail.env.action=="show"||rcmail.env.action=="preview"){rcmail.addEventListener("enable-command",S).addEventListener("aftershow-headers",function(){k()}).addEventListener("afterhide-headers",function(){k()});$("#previewheaderstoggle").click(function(ad){y();if(this.blur&&!rcube_event.is_keyboard(ad)){this.blur()}return false});$("#attachment-list > li").each(function(){$(this).append($('Show options').bind("click keypress",function(ad){if(ad.type!="keypress"||rcube_event.get_keycode(ad)==13){w(this,ad);return false}}))});if(O("previewheaders")=="1"){y()}}else{if(rcmail.env.action=="compose"){rcmail.addEventListener("aftersend-attachment",G).addEventListener("aftertoggle-editor",function(ad){window.setTimeout(function(){o()},200);if(ad&&ad.mode){$("select[name='editorSelector']").val(ad.mode)}});var W,ab,Y,V=["cc","bcc","replyto","followupto"];for(W=0;W0?"identities":rcmail.env.action.replace(/\./g,""))}$(ad).addClass("selected").children().first().removeAttr("onclick").click(function(){return false})});if(rcmail.env.action=="folders"){new rcube_splitter({id:"folderviewsplitter",p1:"#folderslist",p2:"#folder-details",orientation:"v",relative:true,start:266,min:180,size:12}).init();rcmail.addEventListener("setquota",I);i($("#folderslist"))}else{if(rcmail.env.action=="identities"){new rcube_splitter({id:"identviewsplitter",p1:"#identitieslist",p2:"#identity-details",orientation:"v",relative:true,start:266,min:180,size:12}).init()}else{if(rcmail.env.action=="responses"){new rcube_splitter({id:"responseviewsplitter",p1:"#identitieslist",p2:"#identity-details",orientation:"v",relative:true,start:266,min:180,size:12}).init()}else{if(rcmail.env.action=="preferences"||!rcmail.env.action){new rcube_splitter({id:"prefviewsplitter",p1:"#sectionslist",p2:"#preferences-box",orientation:"v",relative:true,start:266,min:180,size:12}).init()}else{if(rcmail.env.action=="edit-prefs"){var Z=$("#preferences-details fieldset.advanced legend"),T=$('').text(j.toggleoptions).attr("title",j.toggleoptions).addClass("advanced-toggle");Z.click(function(ad){T.html($(this).hasClass("collapsed")?"▲":"▼");$(this).toggleClass("collapsed").closest("fieldset").children(".propform").toggle()}).append(T).addClass("collapsed");if(bw.mz){Z.parents("form").css("display","inline")}}}}}}}else{if(rcmail.env.task=="addressbook"){rcmail.addEventListener("afterupload-photo",G).addEventListener("beforepushgroup",E).addEventListener("beforepopgroup",R);if(rcmail.env.action==""){new rcube_splitter({id:"addressviewsplitterd",p1:"#addressview-left",p2:"#addressview-right",orientation:"v",relative:true,start:206,min:150,size:12,render:L}).init();new rcube_splitter({id:"addressviewsplitter",p1:"#addresslist",p2:"#contacts-box",orientation:"v",relative:true,start:266,min:260,size:12}).init()}var aa=$("#dragcontactmenu");if(aa.length){rcmail.gui_object("dragmenu","dragcontactmenu");f.dragmenu=aa}}}}$(".tabbed").each(function(ad,ae){D(ae)});$("select.decorated").each(function(){if(bw.opera){$(this).removeClass("decorated");return}var ae=$(this),ah=ae.parent(),ad=Math.max(ae.height(),26)-2,ag=ae.width()-22,ai=$("option",this).first().text();if($("option:selected",this).val()!=""){ai=$("option:selected",this).text()}var af=$(''+ai+"").css("position","absolute").offset(ae.position()).insertAfter(ae);af.children().width(ag).height(ad).css("line-height",(ad-1)+"px");if(ah.css("position")!="absolute"){ah.css("position","relative")}ae.width(af.width()).on(bw.mz?"change keyup":"change",function(){var aj=$("option:selected",this).text();$(this).next().children().text(aj)});ae.on("focus",function(aj){af.addClass("focus")}).on("blur",function(aj){af.removeClass("focus")})});var ac=$("body.minwidth");if(ac.length){ac.css("min-width",$(".toolbar").width()+$("#quicksearchbar").width()+$("#searchfilter").width()+30)}window.onresize=r;r()}function r(U){var T=U?10:0;if(rcmail.resize_timeout){window.clearTimeout(rcmail.resize_timeout)}rcmail.resize_timeout=window.setTimeout(function(){if(rcmail.env.task=="mail"){if(rcmail.env.action=="show"||rcmail.env.action=="preview"){k()}else{if(rcmail.env.action=="compose"){o()}}}$("body.iframe .footerleft").each(function(){var Z=$(this),V=$(document.body),Y=Z.hasClass("floating"),X=V.outerHeight(true)>$(window).height();if(X!=Y){var W=X?"addClass":"removeClass";Z[W]("floating");V[W]("floatingbuttons")}})},T)}function F(U){var W=$(U.object).siblings("div");if(W.length){$(U.object).insertBefore(W.first())}if(U.type=="error"&&rcmail.env.task!="login"){rcmail.hide_message(U.object);if(q.message_timer){window.clearTimeout(q.message_timer)}if(!q.messagedialog){q.messagedialog=$("
    ").addClass("popupdialog").hide()}var V=U.message,T=function(){q.messagedialog.is(":visible")&&q.messagedialog.dialog("destroy").hide()};if(q.messagedialog.is(":visible")&&q.messagedialog.text()!=V){V=q.messagedialog.html()+"

    "+U.message+"

    "}q.messagedialog.html(V).dialog({resizable:false,closeOnEscape:true,dialogClass:"popupmessage "+U.type,title:j.errortitle,close:T,position:["center","center"],hide:{effect:"fadeOut"},width:420,minHeight:90}).show();q.messagedialog.closest("div[role=dialog]").attr("role","alertdialog");if(U.timeout>0){q.message_timer=window.setTimeout(T,U.timeout)}}}function k(){$("#messagecontent").css("top",($(".ytHeader").outerHeight()+$("#messageheader").outerHeight())+"px");$("#message-objects div a").addClass("button");if(!$("#attachment-list li").length){$("div.rightcol").hide().attr("aria-hidden","true");$("div.leftcol").css("margin-right","0")}}function m(T){}function L(T){}function u(V){if(V.nodeName=="TEXTAREA"){var U=$(V),X=14,T=V.scrollHeight,W=V.value.length>80&&T>X*1.5?2:1;U.css("height",(X*W)+"px");o()}}function o(){var Z=$("#composebody"),U=$("#compose-content"),T=$("#composeview-bottom"),aa,Y,X,ac,W=0,ab=300,X=U.height()-T.position().top;ac=ab-X;W=ac>-100?0:40;T.height(Math.max(ab,X));U.css("overflow",ac>0?"auto":"hidden");aa=Z.parent().width()-5;Y=Z.parent().height()-8;Z.width(aa).height(Y);$("#composebodycontainer > div").width(aa+8);$("#composebody_ifr").height(Y+4-$("div.mce-toolbar").height());$("#googie_edit_layer").width(aa).height(Y);var V=$("#directorylist");if(V.length){$("#compose-contacts .scroller").css("top",V.position().top+V.outerHeight())}}function I(W){var T=$("#quotadisplay"),X=$("#quotamenu"),U=24,V=20,Y=W.total?Math.ceil(W.percent/100*V)*U:0;if(W.total&&Y==U*V&&W.percent<100){Y-=U}T.css("background-position","0 -"+Y+"px");if(W.table){if(!X.length){X=$('
    ').appendTo($("body"))}X.html(W.table);T.css("cursor","pointer").off("click").on("click",function(Z){return rcmail.command("menu-open","quotamenu",Z.target,Z)})}}function i(T){$(".boxtitle a.search",T).click(function(X){var Y=$(".boxtitle",T),W=$(".listsearchbox",T),V=W.is(":visible")?-1:1,U=34+($("select",W).length?22:0);W.slideToggle({duration:160,progress:function(aa,Z){if(V<0){Z=1-Z}$(".scroller",T).css("top",(Y.outerHeight()+U*Z)+"px")},complete:function(){W.toggleClass("expanded");if(W.is(":visible")){W.find("input[type=text]").focus();U=34+($("select",W).length?$("select",W).outerHeight()+4:0);$(".scroller",T).css("top",(Y.outerHeight()+U)+"px")}else{$("a.reset",W).click()}}});return false})}function S(U){if(U.command=="reply-list"&&rcmail.env.reply_all_mode==1){var T=rcmail.gettext(U.status?"replylist":"replyall");if(rcmail.env.action=="preview"){$("a.button.replyall").attr("title",T)}else{$("a.button.reply-all").text(T).attr("title",T)}}}function a(T,U){var V=f[T]=$("#"+T);V.appendTo(document.body);if(V.length){K[T]=$.extend(K[T]||{},U||{})}}function x(T,V,U){if(U||!K[T]){a(T,U)}return rcmail.command("menu-open",T,V.target,V)}function J(U,T,V){if(V||!K[U]){a(U,V)}V=K[U]||{};var W=$(V.link?V.link:"#"+U+"link"),X=W.offset();if(W.has(".inner")){W=W.children(".inner")}return rcmail.command("menu-open",{menu:U,show:T},W.get(0),$.Event("click",{target:W.get(0),pageX:X.left,pageY:X.top,clientX:X.left,clientY:X.top}))}function d(Y){var V=$(Y.target),aa=$("#mailpreviewframe"),Z=!aa.is(":visible"),X=B.pos||parseInt(O("mailviewsplitter")||320),U,W,T;aa.toggle();V.toggleClass("enabled closed").attr("aria-expanded",Z?"true":"false");if(Z){$("#mailview-top").removeClass("fullheight").css({bottom:"auto"});$("#mailview-bottom").css({height:"auto"}).show();rcmail.env.contentframe="messagecontframe";if(T=rcmail.message_list.get_single_selection()){rcmail.show_message(T,false,true)}if(B.handle){B.handle.show();B.resize()}else{B.init()}}else{rcmail.env.contentframe=null;rcmail.show_contentframe(false);$("#mailview-top").addClass("fullheight").css({height:"auto",bottom:"0px"});$("#mailview-bottom").css({top:"auto",height:"0px"}).hide();if(B.handle){B.handle.hide()}}if(rcmail.message_list){if(Z&&T){rcmail.message_list.scrollto(T)}rcmail.message_list.resize()}rcmail.command("save-pref",{name:"preview_pane",value:(Z?1:0)})}function y(){$("#preview-shortheaders").toggle();var U=$("#preview-allheaders").toggle(),T=$("a#previewheaderstoggle");if(U.is(":visible")){T.attr("href","#hide").removeClass("add").addClass("remove").attr("aria-expanded","true")}else{T.attr("href","#details").removeClass("remove").addClass("add").attr("aria-expanded","false")}H("previewheaders",U.is(":visible")?"1":"0")}function c(U,T){if(T||!$("#mail"+U+"mode").hasClass("disabled")){$("#maillistmode, #mailthreadmode").removeClass("selected").attr("tabindex","0").attr("aria-disabled","false");$("#mail"+U+"mode").addClass("selected").attr("tabindex","-1").attr("aria-disabled","true")}}function s(Y){if(Y&&Y.name=="messagelistmenu"){l(Y)}else{if(Y){var U=K[Y.name]||{},W=$(U.link||"#"+Y.name+"link"),Z=Y.obj&&Y.obj.is(":visible"),T=U.above;if(Y.obj&&Z&&W.length){var V=W.parent(),X=$(window),aa;if(V.hasClass("dropbutton")){W=V}if(U.above||W.hasClass("dropbutton")){aa=W.offset();Y.obj.css({left:aa.left+"px",top:(aa.top+(U.above?-Y.obj.height():W.outerHeight()))+"px"})}}if(Y.obj&&U.iconized){Y.obj.children("ul").addClass("iconized")}if(Y.obj&&U.editable){Y.obj.attr("data-editable","true")}if(typeof U.callback=="function"){U.callback(Z,Y)}}}}function p(T){if(T&&rcmail.env.search_mods){var aa,V,Y=f.searchmenu,X=$('input:checkbox[name="s_mods[]"]',Y),Z=rcmail.env.mailbox,W=rcmail.env.search_mods,U=rcmail.env.search_scope||"base";if(rcmail.env.task=="mail"){if(U=="all"){Z="*"}W=W[Z]?W[Z]:W["*"];V="text";$('input:radio[name="s_scope"]').prop("checked",false).filter("#s_scope_"+U).prop("checked",true)}else{V="*"}if(W[V]){X.map(function(){this.checked=true;this.disabled=this.value!=V})}else{X.prop("disabled",false).prop("checked",false);for(aa in W){$("#s_mod_"+aa).prop("checked",true)}}}}function w(U,T){var V=U.parentNode.id.replace(/^attach/,"");$("#attachmenuopen").unbind("click").attr("onclick","").click(function(W){return rcmail.command("open-attachment",V,this)});$("#attachmenudownload").unbind("click").attr("onclick","").click(function(){rcmail.command("download-attachment",V,this)});K.attachmentmenu.link=U;rcmail.command("menu-open",{menu:"attachmentmenu",id:V},U,T)}function g(U,Y){var V,X,T,Z=rcmail.spellcheck_lang(),W=$("ul",Y.obj);if(!W.length){W=$('