diff --git a/cron/SendReminder.service b/cron/SendReminder.service index 46d6f8758e0ecd7c6ac11c720038753d5659da13..c922f898de085d61c3b4c145a94a188a222f7fc3 100644 --- a/cron/SendReminder.service +++ b/cron/SendReminder.service @@ -40,6 +40,7 @@ if(empty($from)) { global $adb; global $log; +global $site_URL; $log =& LoggerManager::getLogger('SendReminder'); $log->debug(" invoked SendReminder "); @@ -49,7 +50,7 @@ if(empty($current_language)) $app_strings = return_application_language($current_language); //modified query for recurring events -Jag -$query="SELECT vtiger_crmentity.crmid, vtiger_crmentity.smownerid, vtiger_seactivityrel.crmid AS setype,vtiger_activity.*,vtiger_activity_reminder.reminder_time, +$query="SELECT vtiger_crmentity.crmid, vtiger_crmentity.description, vtiger_crmentity.smownerid, vtiger_seactivityrel.crmid AS setype,vtiger_activity.*,vtiger_activity_reminder.reminder_time, vtiger_activity_reminder.reminder_sent,vtiger_activity_reminder.recurringid FROM vtiger_activity INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid=vtiger_activity.activityid INNER JOIN vtiger_activity_reminder ON vtiger_activity.activityid=vtiger_activity_reminder.activity_id @@ -68,11 +69,16 @@ if($adb->num_rows($result) >= 1) $reminderResult = $adb->pquery($reminderFrequencyQuery, array()); $reminderFrequency = $adb->query_result($reminderResult,0,'frequency'); + // Retriving the reminder email content from emailtemplates table + $templateQuery='SELECT body FROM vtiger_emailtemplates WHERE subject=? AND systemtemplate=?'; + $templateResult = $adb->pquery($templateQuery, array('Reminder', '1')); + $eventReminderBody=decode_html($adb->query_result($templateResult,0,'body')); + // Retriving the reminder email content from emailtemplates table $templateQuery='SELECT body FROM vtiger_emailtemplates WHERE subject=? AND systemtemplate=?'; $templateResult = $adb->pquery($templateQuery, array('Activity Reminder', '1')); $todoReminderBody=decode_html($adb->query_result($templateResult,0,'body')); - + while($result_set = $adb->fetch_array($result)) { $date_start = $result_set['date_start']; @@ -113,9 +119,9 @@ if($adb->num_rows($result) >= 1) $differenceOfActivityTimeAndCurrentTime = ($activity_time - $curr_time); if (($differenceOfActivityTimeAndCurrentTime > 0) && (($differenceOfActivityTimeAndCurrentTime <= $reminder_time) || ($differenceOfActivityTimeAndCurrentTime <= $reminderFrequency))) { - $log->debug(" InSide REMINDER"); - $query_user="SELECT vtiger_users.email1,vtiger_salesmanactivityrel.smid FROM vtiger_salesmanactivityrel inner join vtiger_users on vtiger_users.id=vtiger_salesmanactivityrel.smid where vtiger_salesmanactivityrel.activityid =? and vtiger_users.deleted=0"; - $user_result = $adb->pquery($query_user, array($activity_id)); + $log->debug(" InSide REMINDER"); + $query_user="SELECT vtiger_users.email1,vtiger_salesmanactivityrel.smid FROM vtiger_salesmanactivityrel inner join vtiger_users on vtiger_users.id=vtiger_salesmanactivityrel.smid WHERE vtiger_salesmanactivityrel.activityid =? AND vtiger_users.deleted=? AND vtiger_users.status=?"; + $user_result = $adb->pquery($query_user, array($activity_id, 0, 'Active')); $invitedUsersList = array(); if($adb->num_rows($user_result)>=1) { @@ -123,7 +129,7 @@ if($adb->num_rows($result) >= 1) { if($user_result_row['email1']!='' || $user_result_row['email1'] !=NULL) { - $to_addr[] = $user_result_row['email1']; + $to_addr[$user_result_row['smid']] = $user_result_row['email1']; } $invitedUsersList[] = $user_result_row['smid']; } @@ -140,42 +146,55 @@ if($adb->num_rows($result) >= 1) $dateTime = new DateTimeField($result_set['date_start'] .' '. $result_set['time_start']); $dateTimeInOwnerFormat = $dateTime->getDisplayDateTimeValue($ownerFocus); - // Retriving the Subject and message from reminder table - $sql = "select active,notificationsubject,notificationbody from vtiger_notificationscheduler where schedulednotificationid=8"; - $result_main = $adb->pquery($sql, array()); - - $subject = $app_strings['Reminder']. $result_set['activitytype'] . " @ $dateTimeInOwnerFormat ] ($ownerTimeZone)". - $adb->query_result($result_main,0,'notificationsubject'); - - //Set the mail body/contents here - $contents = nl2br($adb->query_result($result_main,0,'notificationbody')) ."\n\n ". - $app_strings['Subject']." : ".$activity_sub."\n ". $parent_content ." ". - $app_strings['Date & Time']." : $dateTimeInOwnerFormat ($ownerTimeZone)\n\n ". - $app_strings['Visit_Link']." <a href='".$site_URL."/index.php?view=Detail&module=Calendar&record=".$activity_id."'>".$app_strings['Click here']."</a>"; - + $enddateTime = new DateTimeField($result_set['due_date'] .' '. $result_set['time_end']); + $enddateTimeInOwnerFormat = $enddateTime->getDisplayDateTimeValue($ownerFocus); + + //get related contact names + $cont_qry = "SELECT * FROM vtiger_cntactivityrel WHERE activityid=?"; + $cont_res = $adb->pquery($cont_qry, array($activity_id)); + $noofrows = $adb->num_rows($cont_res); + $cont_id = array(); + if($noofrows > 0) { + for($i=0; $i<$noofrows; $i++) { + $cont_id[] = $adb->query_result($cont_res,$i,"contactid"); + } + } + $cont_name = ''; + foreach($cont_id as $key=>$id) { + if($id != '') { + $contact_name = Vtiger_Util_Helper::getRecordName($id); + $cont_name .= $contact_name .', '; + } + } + $cont_name = trim($cont_name,', '); + $result_set['subject'] = decode_html($result_set['subject']); if($result_set['activitytype'] == "Task") { $enddateInOwnerFormat = $enddateTime->getDisplayDate($ownerFocus); - $list = $todoReminderBody; + $list = $todoReminderBody; + $list = str_replace('$calendar-subject$',$result_set['subject'],$list); + $list = str_replace('$calendar-description$',$result_set['description'],$list); $list = str_replace('$calendar-date_start$', $dateTimeInOwnerFormat.' '.$ownerTimeZone, $list); $list = str_replace('$calendar-due_date$', $enddateInOwnerFormat.' '.$ownerTimeZone, $list); - $contents = getMergedDescription($list, $activity_id, 'Calendar'); + $contents = getMergedDescription($list, $activity_id, 'Calendar',true); $subject = vtranslate('Activity Reminder', 'Calendar').': '.$result_set['subject'] . " @ $dateTimeInOwnerFormat"; } else { $list = $eventReminderBody; + $list = str_replace('$events-subject$',decode_html($result_set['subject']),$list); + $list = str_replace('$events-description$',decode_html($result_set['description']),$list); $list = str_replace('$events-date_start$', $dateTimeInOwnerFormat.' '.$ownerTimeZone, $list); $list = str_replace('$events-due_date$', $enddateTimeInOwnerFormat.' '.$ownerTimeZone, $list); $list = str_replace('$events-contactid$', $cont_name, $list); - $contents = getMergedDescription($list, $activity_id, 'Events'); + $contents = getMergedDescription($list, $activity_id, 'Events',true); $subject = vtranslate('Reminder', 'Calendar').': '.$result_set['subject'] . " @ $dateTimeInOwnerFormat"; } - + $contents = $contents."<br/> ".vtranslate('LBL_CLICK_HERE_TO_VIEW', 'Calendar')." <a href=$site_URL/$recordDetailViewLink>".vtranslate('LBL_RECORD', 'Calendar')."</a>"; if(count($to_addr) >=1) { send_email($to_addr,$from,$subject,$contents,$mail_server,$mail_server_username,$mail_server_password); - $upd_query = "UPDATE vtiger_activity_reminder SET reminder_sent=1 where activity_id=?"; - $upd_params = array($activity_id); + $upd_query = "UPDATE vtiger_activity_reminder SET reminder_sent = ?"; + $upd_params = array(1); if($recur_id!=0) { @@ -212,8 +231,8 @@ function send_email($to,$from,$subject,$contents,$mail_server,$mail_server_usern $mail = new PHPMailer(); - $mail->Subject = $subject; - $mail->Body = nl2br($contents);//"This is the HTML message body <b>in bold!</b>"; + $mail->Subject = $subject; + $mail->Body = nl2br($contents);//"This is the HTML message body <b>in bold!</b>"; $mail->IsSMTP();// set mailer to use SMTP $mailserverresult=$adb->pquery("select * from vtiger_systems where server_type='email'", array()); @@ -267,7 +286,7 @@ function send_email($to,$from,$subject,$contents,$mail_server,$mail_server_usern function getParentInfo($value) { global $adb; - $parent_module = getSalesEntityType($value); + $parent_module = getSalesEntityType($value); if($parent_module == "Leads") { $sql = "select * from vtiger_leaddetails where leadid=?"; @@ -279,7 +298,7 @@ function getParentInfo($value) } elseif($parent_module == "Accounts") { - $sql = "select * from vtiger_account where accountid=?"; + $sql = "select * from vtiger_account where accountid=?"; $result = $adb->pquery($sql, array($value)); $account_name = $adb->query_result($result,0,"accountname"); @@ -287,12 +306,12 @@ function getParentInfo($value) } elseif($parent_module == "Potentials") { - $sql = "select * from vtiger_potential where potentialid=?"; + $sql = "select * from vtiger_potential where potentialid=?"; $result = $adb->pquery($sql, array($value)); $potentialname = $adb->query_result($result,0,"potentialname"); $parent_name =$potentialname; } - return $parent_module ." : ".$parent_name; + return $parent_module ." : ".$parent_name; } -?> \ No newline at end of file +?> diff --git a/languages/en_us/Campaigns.php b/languages/en_us/Campaigns.php index 83304adc1d6b7d522265f1b10c1587e953aa0138..ecd531f357d336479ec9e6c53f1583084e8afba2 100644 --- a/languages/en_us/Campaigns.php +++ b/languages/en_us/Campaigns.php @@ -64,4 +64,8 @@ $languageStrings = array( 'Contacted - Successful' => 'Contacted - Successful', 'Contacted - Unsuccessful' => 'Contacted - Unsuccessful', 'Contacted - Never Contact Again' => 'Contacted - Never Contact Again', +); + +$jsLanguageStrings = array( + 'JS_APPENDED_TO_EXISTING_LIST' => '%s from the selected list will be appended with the existing list.', ); \ No newline at end of file diff --git a/layouts/v7/modules/Campaigns/resources/RelatedList.js b/layouts/v7/modules/Campaigns/resources/RelatedList.js index c282c62ca68c3032e1f2f888cb5830078829e241..677ef9307055691b9b833611d75d2bf51b13496f 100644 --- a/layouts/v7/modules/Campaigns/resources/RelatedList.js +++ b/layouts/v7/modules/Campaigns/resources/RelatedList.js @@ -8,311 +8,367 @@ *************************************************************************************/ Vtiger_RelatedList_Js("Campaigns_RelatedList_Js",{ - - triggerSendEmail : function(massActionUrl, module){ - var detailInstance = Vtiger_Detail_Js.getInstance(); - var searchParams = JSON.stringify(detailInstance.getRelatedListSearchParams()); - var data = app.convertUrlToDataParams(massActionUrl); - var selectedIds = jQuery('#selectedIds').data('selected-ids'); - var excludedIds = jQuery('#excludedIds').data('excluded-ids'); - if(selectedIds == "") { - app.helper.showAlertBox({message:app.vtranslate('JS_PLEASE_SELECT_ONE_RECORD')}); - return false; - } - var params = { - 'search_params' : searchParams, - 'nolistcache' : (jQuery('#noFilterCache').val() == 1) ? 1 : 0, - 'selected_ids' : selectedIds, - 'excluded_ids' : excludedIds, - 'sourceModule' : app.getModuleName(), - 'sourceRecord' : jQuery('#recordId').val() - }; - jQuery.extend(params, data); - Vtiger_Index_Js.showComposeEmailPopup(params); - } - + + triggerSendEmail : function(massActionUrl, module){ + var detailInstance = Vtiger_Detail_Js.getInstance(); + var searchParams = JSON.stringify(detailInstance.getRelatedListSearchParams()); + var data = app.convertUrlToDataParams(massActionUrl); + var selectedIds = jQuery('#selectedIds').data('selected-ids'); + var excludedIds = jQuery('#excludedIds').data('excluded-ids'); + if(selectedIds == "") { + app.helper.showAlertBox({message:app.vtranslate('JS_PLEASE_SELECT_ONE_RECORD')}); + return false; + } + var params = { + 'search_params' : searchParams, + 'nolistcache' : (jQuery('#noFilterCache').val() == 1) ? 1 : 0, + 'selected_ids' : selectedIds, + 'excluded_ids' : excludedIds, + 'sourceModule' : app.getModuleName(), + 'sourceRecord' : jQuery('#recordId').val() + }; + jQuery.extend(params, data); + Vtiger_Index_Js.showComposeEmailPopup(params); + } + },{ - - loadRelatedList : function(params) { - var aDeferred = jQuery.Deferred(); - var self = this; - self._super(params).then(function(data) { - self.registerEvents(); - aDeferred.resolve(data); - }); - return aDeferred.promise(); - }, - - changeCustomFilterElementView : function() { - var self = this; - var filterSelectElement = self.relatedContentContainer.find('#recordsFilter'); - if(filterSelectElement.length > 0){ - vtUtils.showSelect2ElementView(filterSelectElement); - } - }, - - registerChangeCustomFilterEvent : function() { - var self = this; - var filterSelectElement = this.relatedContentContainer.find('#recordsFilter'); - filterSelectElement.change(function(e){ - var element = jQuery(e.currentTarget); - var cvId = element.find('option:selected').data('id'); - var params = { - 'sourceRecord' : self.parentRecordId, - 'relatedModule' :self.relatedModulename, - 'viewId' : cvId, - 'module' : app.getModuleName(), - 'action': "RelationAjax", - 'mode' : 'addRelationsFromRelatedModuleViewId' - }; - app.helper.showProgress(); - app.request.post({"data" : params}).then( - function(responseData) { - app.helper.hideProgress(); - if(responseData != null){ - app.helper.showErrorNotification({"message": app.vtranslate('JS_NO_RECORDS_RELATED_TO_THIS_FILTER')}); - } else { - self.loadRelatedList().then(function() { - self.triggerRelationAdditionalActions(); - }); - } - }, - function(textStatus, errorThrown){} - ); - }); - }, + selectedRecordIds : false, + excludedRecordIds : false, + + loadRelatedList : function(params) { + var aDeferred = jQuery.Deferred(); + var self = this; + self._super(params).then(function(data) { + self.registerEvents(); + aDeferred.resolve(data); + }); + return aDeferred.promise(); + }, + + changeCustomFilterElementView : function() { + var self = this; + var filterSelectElement = self.relatedContentContainer.find('#recordsFilter'); + if(filterSelectElement.length > 0){ + vtUtils.showSelect2ElementView(filterSelectElement); + } + }, + + registerChangeCustomFilterEvent : function() { + var self = this; + var filterSelectElement = this.relatedContentContainer.find('#recordsFilter'); + filterSelectElement.change(function(e){ + var element = jQuery(e.currentTarget); + if (jQuery('.bootbox-confirm .in').length == 0) { + var message = app.vtranslate('JS_APPENDED_TO_EXISTING_LIST',self.relatedModulename)+'<br><br>'+app.vtranslate('JS_WISH_TO_PROCEED'); + app.helper.showConfirmationBox({'message':message}).then(function(e){ + var cvId = element.find('option:selected').data('id'); + var params = { + 'sourceRecord' : self.parentRecordId, + 'relatedModule' :self.relatedModulename, + 'viewId' : cvId, + 'module' : app.getModuleName(), + 'action': "RelationAjax", + 'mode' : 'addRelationsFromRelatedModuleViewId' + }; + app.helper.showProgress(); + app.request.post({"data" : params}).then( + function(responseData) { + app.helper.hideProgress(); + if(responseData != null){ + app.helper.showErrorNotification({"message": app.vtranslate('JS_NO_RECORDS_RELATED_TO_THIS_FILTER')}); + } else { + self.loadRelatedList().then(function() { + self.triggerRelationAdditionalActions(); + }); + } + }, + function(textStatus, errorThrown){} + ); + }); + } + }); + }, + + registerEventToEditRelatedStatus : function() { + var self = this; + var statusElement = self.relatedContentContainer.find('.currentStatus'); + statusElement.on('click',function(e) { + e.stopImmediatePropagation(); + var element = jQuery(e.currentTarget); + element.addClass('open'); + }); + var statusDropdown = statusElement.find('.dropdown-menu'); + statusDropdown.on('click','a',function(e) { + e.stopImmediatePropagation(); + var element = jQuery(e.currentTarget); + var liContainer = element.closest('li'); + var currentStatus = element.closest('.currentStatus'); + var selectedStatusId = liContainer.attr('id'); + var selectedStatusValue = liContainer.data('status'); + var relatedRecordId = element.closest('tr').data('id'); + var params = { + 'relatedModule' : self.relatedModulename, + 'relatedRecord' : relatedRecordId, + 'status' : selectedStatusId, + 'module' : app.getModuleName(), + 'action' : 'RelationAjax', + 'sourceRecord' : self.parentRecordId, + 'mode' : 'updateStatus' + } + app.helper.showProgress(); + app.request.post({"data" : params}).then(function(error, responseData) { + if(responseData) { + app.helper.hideProgress(); + currentStatus.find('.statusValue').text(selectedStatusValue); + currentStatus.removeClass('open'); + } + }, + function(textStatus, errorThrown) {} + ); + }); + }, + + writeSelectedIds : function(selectedIds) { + var self = this; + var element = self.relatedContentContainer.find('#selectedIds'); + element.data('selected-ids', selectedIds); + self.selectedRecordIds = selectedIds; + }, + + writeExcludedIds : function(excludedIds) { + var self = this; + var element = self.relatedContentContainer.find('#excludedIds'); + element.data('excluded-ids', excludedIds); + self.excludedRecordIds = excludedIds; + }, + + readSelectedIds : function(decode) { + var self = this; + var element = self.relatedContentContainer.find('#selectedIds'); + var selectedIds = element.data('selected-ids'); + if(selectedIds == "") { + selectedIds = new Array(); + self.writeSelectedIds(selectedIds); + } + if(decode && typeof selectedIds == "object") { + selectedIds = JSON.stringify(selectedIds); + } + return selectedIds; + }, + + reladExcludedIds : function(decode) { + var self = this; + var element = self.relatedContentContainer.find('#excludedIds'); + var excludedIds = element.data('excluded-ids'); + if(excludedIds == "") { + excludedIds = new Array(); + self.writeExcludedIds(excludedIds); + } + if(decode && typeof excludedIds == "object") { + excludedIds = JSON.stringify(excludedIds); + } + return excludedIds; + }, + registerPostSelectionRelatedListActions : function(){ + var selectedIds = this.readSelectedIds(false); + var sendEmailButton = this.relatedContentContainer.find('.relatedHeader').find('.sendEmail'); + if(selectedIds.length > 0){ + sendEmailButton.removeAttr('disabled'); + }else if(selectedIds.length == 0){ + sendEmailButton.attr('disabled', "disabled"); + } + }, + + markSelectedIdsCheckboxes: function (params) { + var self = this; + var selectedIds = params.selected; + var excludedIds = params.excluded; + var relatedListContainer = self.relatedContentContainer; + relatedListContainer.find('#selectedIds').data('selected-ids', selectedIds); + relatedListContainer.find('#excludedIds').data('excluded-ids', excludedIds); + if ((selectedIds == '' && excludedIds == '')) { + return; + } + relatedListContainer.find('.listViewEntriesCheckBox').each(function (i, ele) { + var currentRow = jQuery(ele).closest('tr'); + var recordId = currentRow.data('id').toString(); + if (jQuery.inArray(recordId, excludedIds) == '-1' && (jQuery.inArray(recordId, selectedIds) != '-1' || selectedIds == 'all')) { + jQuery(ele).prop('checked', true); + currentRow.addClass('listviewhovercolor'); + } + }); + self.selectMainCheck(); + }, + + selectMainCheck: function () { + var self = this; + var relatedListContainer = self.relatedContentContainer; + var mainCheckBox = relatedListContainer.find('#listViewEntriesMainCheckBox'); + if (relatedListContainer.find('.listViewEntriesCheckBox').not(":checked").length == 0) { + mainCheckBox.prop("checked", true); + } else { + mainCheckBox.prop("checked", false); + } + }, + + registerCheckboxClickEvent : function() { + var self = this; + self.relatedContentContainer.off('click','.listViewEntriesCheckBox').on('click','.listViewEntriesCheckBox',function(e) { + var element = jQuery(e.currentTarget); + var recordId = element.val(); + var selectedIds = self.readSelectedIds(false); + var excludedIds = self.reladExcludedIds(false); + if(element.is(":checked")) { + if(selectedIds != "all") { + selectedIds.push(recordId); + } else { + excludedIds.splice($.inArray(recordId, excludedIds), 1); + } + element.closest('tr').addClass('listviewhovercolor'); + self.registerPostSelectionRelatedListActions(); + } else { + if(selectedIds != "all") { + selectedIds.splice($.inArray(recordId, selectedIds), 1); + } else { + excludedIds.push(recordId); + } + element.closest('tr').removeClass('listviewhovercolor'); + self.registerPostSelectionRelatedListActions(); + } + self.writeSelectedIds(selectedIds); + self.writeExcludedIds(excludedIds); + self.selectMainCheck(); + }); + }, + + registerMainCheckboxClickEvent : function() { + var self = this; + self.relatedContentContainer.off('click', '#listViewEntriesMainCheckBox').on('click', '#listViewEntriesMainCheckBox', function (e) { + var element = jQuery(e.currentTarget); + if(element.is(":checked")) { + var selectedIds = self.readSelectedIds(false); + var excludedIds = self.reladExcludedIds(false); + self.relatedContentContainer.find('.listViewEntriesCheckBox').each(function(i, ele){ + var recordId = jQuery(ele).val(); + if(selectedIds != "all") { + selectedIds.push(recordId); + } else { + excludedIds.splice($.inArray(recordId, excludedIds), 1); + } + jQuery(ele).prop('checked', true).closest('tr').addClass('listviewhovercolor');; + }); + self.writeSelectedIds(selectedIds); + self.writeExcludedIds(excludedIds); + self.getRecordsCount().then(function(count){ + self.relatedContentContainer.find('#totalRecordsCount').text(count); + self.relatedContentContainer.find('#selectAllMsgDiv').closest('div.messageContainer').removeClass('hide'); + }); + self.registerPostSelectionRelatedListActions(); + } else { + var selectedIds = self.readSelectedIds(false); + var excludedIds = self.reladExcludedIds(false); + self.relatedContentContainer.find('.listViewEntriesCheckBox').each(function(i, ele){ + var recordId = jQuery(ele).val(); + if(selectedIds != "all") { + selectedIds.splice($.inArray(recordId, selectedIds), 1); + } else { + excludedIds.push(recordId); + } + jQuery(ele).prop('checked', false).closest('tr').removeClass('listviewhovercolor');; + }); + self.writeSelectedIds(selectedIds); + self.writeExcludedIds(excludedIds); + self.relatedContentContainer.find('#selectAllMsgDiv').closest('div.messageContainer').addClass('hide'); + self.registerPostSelectionRelatedListActions(); + } + }); + }, + + getRecordsCount : function() { + var aDeferred = jQuery.Deferred(); + var self = this; + var recordCountEle = self.relatedContentContainer.find('#recordsCount'); + var recordsCount = recordCountEle.val(); + if(recordsCount != "") { + aDeferred.resolve(recordsCount); + } else { + var params = { + 'module' : app.getModuleName(), + 'action' : 'DetailAjax', + 'mode' : 'getRecordsCount', + 'relatedModule' : self.relatedModulename, + 'record' : self.parentRecordId, + 'tab_label' : self.relatedContentContainer.find('#tab_label').val() + }; + app.helper.showProgress(); + app.request.post({"data" : params}).then(function(error, responseData) { + app.helper.hideProgress(); + var count = responseData.count; + recordCountEle.val(count); + aDeferred.resolve(count); + }); + } + return aDeferred.promise(); + }, + + registerSelectAllClickEvent : function() { + var self = this; + var selectAllContainer = self.relatedContentContainer.find('#selectAllMsgDiv'); + selectAllContainer.click(function(){ + self.relatedContentContainer.find('.listViewEntriesCheckBox').each(function(i, ele){ + jQuery(ele).attr('checked', true); + }); + self.relatedContentContainer.find('#listViewEntriesMainCheckBox').attr('checked', true); + self.writeSelectedIds("all"); + selectAllContainer.closest('div.messageContainer').addClass('hide'); + self.relatedContentContainer.find('#deSelectAllMsgDiv').closest('div.messageContainer').removeClass('hide'); + }); + }, - registerEventToEditRelatedStatus : function() { - var self = this; - var statusElement = self.relatedContentContainer.find('.currentStatus'); - statusElement.on('click',function(e) { - e.stopImmediatePropagation(); - var element = jQuery(e.currentTarget); - element.addClass('open'); - }); - var statusDropdown = statusElement.find('.dropdown-menu'); - statusDropdown.on('click','a',function(e) { - e.stopImmediatePropagation(); - var element = jQuery(e.currentTarget); - var liContainer = element.closest('li'); - var currentStatus = element.closest('.currentStatus'); - var selectedStatusId = liContainer.attr('id'); - var selectedStatusValue = liContainer.data('status'); - var relatedRecordId = element.closest('tr').data('id'); - var params = { - 'relatedModule' : self.relatedModulename, - 'relatedRecord' : relatedRecordId, - 'status' : selectedStatusId, - 'module' : app.getModuleName(), - 'action' : 'RelationAjax', - 'sourceRecord' : self.parentRecordId, - 'mode' : 'updateStatus' - } - app.helper.showProgress(); - app.request.post({"data" : params}).then(function(error, responseData) { - if(responseData) { - app.helper.hideProgress(); - currentStatus.find('.statusValue').text(selectedStatusValue); - currentStatus.removeClass('open'); - } - }, - function(textStatus, errorThrown) {} - ); - }); - }, - - writeSelectedIds : function(selectedIds) { - var self = this; - var element = self.relatedContentContainer.find('#selectedIds'); - element.data('selected-ids', selectedIds); - }, - - writeExcludedIds : function(excludedIds) { - var self = this; - var element = self.relatedContentContainer.find('#excludedIds'); - element.data('excluded-ids', excludedIds); - }, - - readSelectedIds : function(decode) { - var self = this; - var element = self.relatedContentContainer.find('#selectedIds'); - var selectedIds = element.data('selected-ids'); - if(selectedIds == "") { - selectedIds = new Array(); - self.writeSelectedIds(selectedIds); - } - if(decode && typeof selectedIds == "object") { - selectedIds = JSON.stringify(selectedIds); - } - return selectedIds; - }, - - reladExcludedIds : function(decode) { - var self = this; - var element = self.relatedContentContainer.find('#excludedIds'); - var excludedIds = element.data('excluded-ids'); - if(excludedIds == "") { - excludedIds = new Array(); - self.writeExcludedIds(excludedIds); - } - if(decode && typeof excludedIds == "object") { - excludedIds = JSON.stringify(excludedIds); - } - return excludedIds; - }, - registerPostSelectionRelatedListActions : function(){ - var selectedIds = this.readSelectedIds(false); - var sendEmailButton = this.relatedContentContainer.find('.relatedHeader').find('.sendEmail'); - if(selectedIds.length > 0){ - sendEmailButton.removeAttr('disabled'); - }else if(selectedIds.length == 0){ - sendEmailButton.attr('disabled', "disabled"); - } - }, - - registerCheckboxClickEvent : function() { - var self = this; - self.relatedContentContainer.find('.listViewEntriesCheckBox').click(function(e) { - var element = jQuery(e.currentTarget); - var recordId = element.val(); - var selectedIds = self.readSelectedIds(false); - var excludedIds = self.reladExcludedIds(false); - if(element.is(":checked")) { - if(selectedIds != "all") { - selectedIds.push(recordId); - } else { - excludedIds.splice($.inArray(recordId, excludedIds), 1); - } - self.registerPostSelectionRelatedListActions(); - } else { - if(selectedIds != "all") { - selectedIds.splice($.inArray(recordId, selectedIds), 1); - } else { - excludedIds.push(recordId); - } - self.registerPostSelectionRelatedListActions(); - } - self.writeSelectedIds(selectedIds); - self.writeExcludedIds(excludedIds); - }); - }, - - registerMainCheckboxClickEvent : function() { - var self = this; - self.relatedContentContainer.on('click', '#listViewEntriesMainCheckBox', function(e){ - var element = jQuery(e.currentTarget); - if(element.is(":checked")) { - var selectedIds = self.readSelectedIds(false); - var excludedIds = self.reladExcludedIds(false); - self.relatedContentContainer.find('.listViewEntriesCheckBox').each(function(i, ele){ - var recordId = jQuery(ele).val(); - if(selectedIds != "all") { - selectedIds.push(recordId); - } else { - excludedIds.splice($.inArray(recordId, excludedIds), 1); - } - jQuery(ele).prop('checked', true); - }); - self.writeSelectedIds(selectedIds); - self.writeExcludedIds(excludedIds); - self.getRecordsCount().then(function(count){ - self.relatedContentContainer.find('#totalRecordsCount').text(count); - self.relatedContentContainer.find('#selectAllMsgDiv').closest('div.messageContainer').removeClass('hide'); - }); - self.registerPostSelectionRelatedListActions(); - } else { - var selectedIds = self.readSelectedIds(false); - var excludedIds = self.reladExcludedIds(false); - self.relatedContentContainer.find('.listViewEntriesCheckBox').each(function(i, ele){ - var recordId = jQuery(ele).val(); - if(selectedIds != "all") { - selectedIds.splice($.inArray(recordId, selectedIds), 1); - } else { - excludedIds.push(recordId); - } - jQuery(ele).prop('checked', false); - }); - self.writeSelectedIds(selectedIds); - self.writeExcludedIds(excludedIds); - self.relatedContentContainer.find('#selectAllMsgDiv').closest('div.messageContainer').addClass('hide'); - self.registerPostSelectionRelatedListActions(); - } - }); - }, - - getRecordsCount : function() { - var aDeferred = jQuery.Deferred(); - var self = this; - var recordCountEle = self.relatedContentContainer.find('#recordsCount'); - var recordsCount = recordCountEle.val(); - if(recordsCount != "") { - aDeferred.resolve(recordsCount); - } else { - var params = { - 'module' : app.getModuleName(), - 'action' : 'DetailAjax', - 'mode' : 'getRecordsCount', - 'relatedModule' : self.relatedModulename, - 'record' : self.parentRecordId, - 'tab_label' : self.relatedContentContainer.find('#tab_label').val() - }; - app.helper.showProgress(); - app.request.post({"data" : params}).then(function(error, responseData) { - app.helper.hideProgress(); - var count = responseData.count; - recordCountEle.val(count); - aDeferred.resolve(count); - }); - } - return aDeferred.promise(); - }, - - registerSelectAllClickEvent : function() { - var self = this; - var selectAllContainer = self.relatedContentContainer.find('#selectAllMsgDiv'); - selectAllContainer.click(function(){ - self.relatedContentContainer.find('.listViewEntriesCheckBox').each(function(i, ele){ - jQuery(ele).attr('checked', true); - }); - self.relatedContentContainer.find('#listViewEntriesMainCheckBox').attr('checked', true); - self.writeSelectedIds("all"); - selectAllContainer.closest('div.messageContainer').addClass('hide'); - self.relatedContentContainer.find('#deSelectAllMsgDiv').closest('div.messageContainer').removeClass('hide'); - }); - }, - - registerDeselectAllClickEvent : function() { - var self = this; - var deselectAllContainer = self.relatedContentContainer.find('#deSelectAllMsgDiv'); - deselectAllContainer.click(function(){ - self.relatedContentContainer.find('.listViewEntriesCheckBox').each(function(i, ele){ - jQuery(ele).attr('checked', false); - }); - self.relatedContentContainer.find('#listViewEntriesMainCheckBox').attr('checked', false); - self.writeSelectedIds(''); - self.writeExcludedIds(''); - deselectAllContainer.closest('div.messageContainer').addClass('hide'); - }); - }, - - registerEvents : function() { - this.registerEditLink(); - this.changeCustomFilterElementView(); - this.registerEventToEditRelatedStatus(); - this.registerChangeCustomFilterEvent(); - this.registerCheckboxClickEvent(); - this.registerMainCheckboxClickEvent(); - this.registerSelectAllClickEvent(); - this.registerDeselectAllClickEvent(); + registerDeselectAllClickEvent : function() { + var self = this; + var deselectAllContainer = self.relatedContentContainer.find('#deSelectAllMsgDiv'); + deselectAllContainer.click(function(){ + self.relatedContentContainer.find('.listViewEntriesCheckBox').each(function(i, ele){ + jQuery(ele).attr('checked', false); + }); + self.relatedContentContainer.find('#listViewEntriesMainCheckBox').attr('checked', false); + self.writeSelectedIds(''); + self.writeExcludedIds(''); + deselectAllContainer.closest('div.messageContainer').addClass('hide'); + }); + }, + + postLoadRelatedListViewRecords : function(){ + var thisInstance = this; + app.event.off('Vtiger.RelatedList.PostLoad.Event'); + app.event.on('Vtiger.RelatedList.PostLoad.Event', function(e) { + var listParams = { + "selected" : thisInstance.selectedRecordIds, + "excluded" : thisInstance.excludedRecordIds + }; + thisInstance.markSelectedIdsCheckboxes(listParams); + }); + }, + + registerEvents : function() { + this.changeCustomFilterElementView(); + this.registerEventToEditRelatedStatus(); + this.registerChangeCustomFilterEvent(); + this.registerCheckboxClickEvent(); + this.registerMainCheckboxClickEvent(); + this.registerSelectAllClickEvent(); + this.registerDeselectAllClickEvent(); + this.postLoadRelatedListViewRecords(); if(typeof jQuery.fn.sadropdown === 'function') { jQuery('.currentStatus').find('.dropdown-toggle').sadropdown({ relativeTo: '.listview-table' }); } - }, - - init : function(parentId, parentModule, selectedRelatedTabElement, relatedModuleName) { - this._super(parentId, parentModule, selectedRelatedTabElement, relatedModuleName); - this.registerEvents(); - } + }, + + init : function(parentId, parentModule, selectedRelatedTabElement, relatedModuleName) { + this._super(parentId, parentModule, selectedRelatedTabElement, relatedModuleName); + this.registerEvents(); + } }); \ No newline at end of file diff --git a/layouts/v7/modules/Vtiger/resources/DashBoard.js b/layouts/v7/modules/Vtiger/resources/DashBoard.js index 4faf9754fe17b892f5b90b19feb64fb17e31ca6d..1f2ce3446c8c3b042810cb8a0adde8c7e2e19ee0 100644 --- a/layouts/v7/modules/Vtiger/resources/DashBoard.js +++ b/layouts/v7/modules/Vtiger/resources/DashBoard.js @@ -829,6 +829,8 @@ Vtiger.Class("Vtiger_DashBoard_Js",{ dashBoardContainer.on("shown.bs.tab",".dashboardTab",function(e){ var currentTarget = jQuery(e.currentTarget); var tabid = currentTarget.data('tabid'); + app.changeURL("index.php?module=Home&view=DashBoard&tabid="+tabid); + // If tab is already loaded earlier then we shouldn't reload tab and register gridster if(typeof jQuery("#tab_"+tabid).find(".dashBoardTabContainer").val() !== 'undefined'){ // We should overwrite gridster with current tab which is clicked diff --git a/layouts/v7/resources/application.js b/layouts/v7/resources/application.js index 72a479369a7e734269925682cdc4f9e5e2755478..760e09f6e635af4e4c6e5631b480762d3576c381 100644 --- a/layouts/v7/resources/application.js +++ b/layouts/v7/resources/application.js @@ -311,6 +311,13 @@ window.app = (function () { return ''; } }, + changeURL : function(url){ + if (typeof history.pushState !== "undefined") { + history.pushState({}, "", url); + } else { + console.log("Browser does not support HTML5."); + } + }, /** * Function returns translated string */ diff --git a/layouts/v7/skins/images/usersetupbg.png b/layouts/v7/skins/images/usersetupbg.png index 72535fade8da8fa40f888cbc2e3a74195fc92ae3..589d3434bea3f222c974a0b70bf60f87c88e4312 100644 Binary files a/layouts/v7/skins/images/usersetupbg.png and b/layouts/v7/skins/images/usersetupbg.png differ diff --git a/modules/Migration/schema/660_to_700.php b/modules/Migration/schema/660_to_700.php index cd7888329d3261417fa8a53d61bc9bdc8bacbc5e..2bf469cc24b0f8b105474033b9ef46c6bbf8668b 100644 --- a/modules/Migration/schema/660_to_700.php +++ b/modules/Migration/schema/660_to_700.php @@ -26,6 +26,22 @@ if(defined('VTIGER_UPGRADE')) { $db->pquery('ALTER TABLE vtiger_crmentity ADD COLUMN smgroupid INT(19)', array()); } + $moduleName = 'Calendar'; + $reminderTemplateResult = $db->pquery('SELECT 1 FROM vtiger_emailtemplates WHERE subject=? AND systemtemplate=?', array('Reminder', '1')); + if (!$db->num_rows($reminderTemplateResult)) { + $body = '<p>'.vtranslate('LBL_REMINDER_NOTIFICATION', $moduleName).'<br/>' . + vtranslate('LBL_DETAILS_STRING', $moduleName).' :<br/> + '.vtranslate('Subject', $moduleName).' : $events-subject$<br/> + '.vtranslate('Start Date & Time', $moduleName).' : $events-date_start$<br/> + '.vtranslate('End Date & Time', $moduleName).' : $events-due_date$<br/> + '.vtranslate('LBL_STATUS', $moduleName).' : $events-eventstatus$<br/> + '.vtranslate('Location', $moduleName).' : $events-location$<br/> + '.vtranslate('LBL_APP_DESCRIPTION', $moduleName).' : $events-description$<br/><br/> + <p/>'; + $db->pquery('INSERT INTO vtiger_emailtemplates(foldername,templatename,subject,description,body,systemtemplate,templateid) values(?,?,?,?,?,?,?)', array('Public', 'Activity Reminder', 'Reminder', 'Reminder', $body, '1', $db->getUniqueID('vtiger_emailtemplates'))); + } + + $db->pquery('UPDATE vtiger_field SET presence=0 WHERE columnname=? AND fieldname=?', array('emailoptout', 'emailoptout')); $db->pquery('UPDATE vtiger_settings_field SET name=? WHERE name=?', array('Configuration Editor', 'LBL_CONFIG_EDITOR')); $db->pquery('UPDATE vtiger_links SET linktype=? WHERE linklabel=?', array('DETAILVIEW', 'LBL_SHOW_ACCOUNT_HIERARCHY')); $db->pquery('UPDATE vtiger_field SET defaultvalue=? WHERE fieldname=?', array('1', 'discontinued')); diff --git a/packages/vtiger/optional/Arabic_ar_ae.zip b/packages/vtiger/optional/Arabic_ar_ae.zip index ec6c67f8c2478b7bd24a56b1204858cf5583a2f4..8375b723de485b3ce8bdfb750ad58abe844b895e 100644 Binary files a/packages/vtiger/optional/Arabic_ar_ae.zip and b/packages/vtiger/optional/Arabic_ar_ae.zip differ diff --git a/packages/vtiger/optional/BrazilianLanguagePack_bz_bz.zip b/packages/vtiger/optional/BrazilianLanguagePack_bz_bz.zip index ea4227fdbae0c5288cee34e66dea7a8d225c38fb..d227e3e7dcc4d1abe18b16ea126137be53aaa678 100644 Binary files a/packages/vtiger/optional/BrazilianLanguagePack_bz_bz.zip and b/packages/vtiger/optional/BrazilianLanguagePack_bz_bz.zip differ diff --git a/packages/vtiger/optional/BritishLanguagePack_br_br.zip b/packages/vtiger/optional/BritishLanguagePack_br_br.zip index 96476cae88eb1e4248afad24db65f6e6e7fd00be..f761dd097372b3c8c73fa0ad4d678d51e912423a 100644 Binary files a/packages/vtiger/optional/BritishLanguagePack_br_br.zip and b/packages/vtiger/optional/BritishLanguagePack_br_br.zip differ diff --git a/packages/vtiger/optional/Deutsch.zip b/packages/vtiger/optional/Deutsch.zip index 5acf53ffc892b699534d71f967958affdba96d5d..c5c3369c439c65aee64c1e50d0a548921c234180 100644 Binary files a/packages/vtiger/optional/Deutsch.zip and b/packages/vtiger/optional/Deutsch.zip differ diff --git a/packages/vtiger/optional/Dutch.zip b/packages/vtiger/optional/Dutch.zip index d2e9e4541c2e5520472757de3fb33a9f93e9331b..24a7accda397e9b0533c388bf33fa86b68575e05 100644 Binary files a/packages/vtiger/optional/Dutch.zip and b/packages/vtiger/optional/Dutch.zip differ diff --git a/packages/vtiger/optional/French.zip b/packages/vtiger/optional/French.zip index b5f667ca3dac86cc560a19b9f6a9dc3d4a767c66..83a6b92528e5145c24ea62565a8b95a7f8b443d1 100644 Binary files a/packages/vtiger/optional/French.zip and b/packages/vtiger/optional/French.zip differ diff --git a/packages/vtiger/optional/Hungarian.zip b/packages/vtiger/optional/Hungarian.zip index 8f0f1fec47a7ecdea8a374133fce024161e14388..163e8681a9744287455908e2a3153670cb041649 100644 Binary files a/packages/vtiger/optional/Hungarian.zip and b/packages/vtiger/optional/Hungarian.zip differ diff --git a/packages/vtiger/optional/ItalianLanguagePack_it_it.zip b/packages/vtiger/optional/ItalianLanguagePack_it_it.zip index c169484486467d56c3f8126bd606c04302476e82..03d1c89676226fea3efdad1403cf2338f58de589 100644 Binary files a/packages/vtiger/optional/ItalianLanguagePack_it_it.zip and b/packages/vtiger/optional/ItalianLanguagePack_it_it.zip differ diff --git a/packages/vtiger/optional/MexicanSpanishLanguagePack_es_mx.zip b/packages/vtiger/optional/MexicanSpanishLanguagePack_es_mx.zip index 07ca2ba7ff9d77d0f8e219a69fa841a20efeda04..d87d8ad1b350e0bcc48d55cb78cf626187ade737 100644 Binary files a/packages/vtiger/optional/MexicanSpanishLanguagePack_es_mx.zip and b/packages/vtiger/optional/MexicanSpanishLanguagePack_es_mx.zip differ diff --git a/packages/vtiger/optional/PolishLanguagePack_pl_pl.zip b/packages/vtiger/optional/PolishLanguagePack_pl_pl.zip index ef158e37ffc5c0bf973072218ed1bb78fbdbe300..39c7777a46a4ae5c64ce884634b8a23570f9795e 100644 Binary files a/packages/vtiger/optional/PolishLanguagePack_pl_pl.zip and b/packages/vtiger/optional/PolishLanguagePack_pl_pl.zip differ diff --git a/packages/vtiger/optional/RomanianLanguagePack_rm_rm.zip b/packages/vtiger/optional/RomanianLanguagePack_rm_rm.zip index 4da10c45b90c3f3e90646e01b9c0a6e5f9fe63b4..07d6ae7afd7145d1fc9fe64d1a3d8ac0fa52ef72 100644 Binary files a/packages/vtiger/optional/RomanianLanguagePack_rm_rm.zip and b/packages/vtiger/optional/RomanianLanguagePack_rm_rm.zip differ diff --git a/packages/vtiger/optional/Russian.zip b/packages/vtiger/optional/Russian.zip index e908cb2505a0bd6c0d1788b137073058ad691d89..5600fea1b21b49f4e82aa43b046de6ca4eec610c 100644 Binary files a/packages/vtiger/optional/Russian.zip and b/packages/vtiger/optional/Russian.zip differ diff --git a/packages/vtiger/optional/Spanish.zip b/packages/vtiger/optional/Spanish.zip index d713cea7d9cf683132cd26487f9d66207c54cfcd..ad256541f62dddc009b9212601b5afa33fb7e8e9 100644 Binary files a/packages/vtiger/optional/Spanish.zip and b/packages/vtiger/optional/Spanish.zip differ diff --git a/packages/vtiger/optional/Sweden_sv_se.zip b/packages/vtiger/optional/Sweden_sv_se.zip index 02bb19881039ab33350db3b10bed1714698cf130..222797f8506c89ce543ec7bce46d5c6f846ee405 100644 Binary files a/packages/vtiger/optional/Sweden_sv_se.zip and b/packages/vtiger/optional/Sweden_sv_se.zip differ diff --git a/packages/vtiger/optional/TurkishLanguagePack_tr_tr.zip b/packages/vtiger/optional/TurkishLanguagePack_tr_tr.zip index cfdfd0535f3266f409fcb2611b0fbc55a1fa98b6..a253c436d88738613f08930498700ad2f5d50822 100644 Binary files a/packages/vtiger/optional/TurkishLanguagePack_tr_tr.zip and b/packages/vtiger/optional/TurkishLanguagePack_tr_tr.zip differ diff --git a/pkg/vtiger/translations/Arabic_ar_ae/modules/Campaigns.php b/pkg/vtiger/translations/Arabic_ar_ae/modules/Campaigns.php index 0e794c2ad2781d90ab23167bcbc67fb58c67068b..334681990fe8b0b16743df79dd8e944d03eb3ad4 100644 --- a/pkg/vtiger/translations/Arabic_ar_ae/modules/Campaigns.php +++ b/pkg/vtiger/translations/Arabic_ar_ae/modules/Campaigns.php @@ -64,4 +64,8 @@ $languageStrings = array( 'Contacted - Successful' => 'الاتصال ‫-‬ ناجØ', 'Contacted - Unsuccessful' => 'الاتصال ‫-‬ غير ناجØ', 'Contacted - Never Contact Again' => 'الاتصال ‫-‬ عدم الاتصال مرة اخرى', +); + +$jsLanguageStrings = array( + 'JS_APPENDED_TO_EXISTING_LIST' => 'Ùª s من القائمة المØددة سيتم إلØاق مع القائمة الØالية.', ); \ No newline at end of file diff --git a/pkg/vtiger/translations/BrazilianLanguagePack_bz_bz/modules/Campaigns.php b/pkg/vtiger/translations/BrazilianLanguagePack_bz_bz/modules/Campaigns.php index a72ace587e7e155e3b869512828609803e3a2d0f..67de9944da8bd5fdc81784512d376f9d9706b265 100644 --- a/pkg/vtiger/translations/BrazilianLanguagePack_bz_bz/modules/Campaigns.php +++ b/pkg/vtiger/translations/BrazilianLanguagePack_bz_bz/modules/Campaigns.php @@ -52,4 +52,8 @@ $languageStrings = array( 'Contacted - Successful' => 'Contactado - Sucesso' , 'Contacted - Unsuccessful' => 'Contactado - Insucesso' , 'Contacted - Never Contact Again' => 'Contactado - Nunca Contactar Novamente', +); + +$jsLanguageStrings = array( + 'JS_APPENDED_TO_EXISTING_LIST' => '%s da lista selecionado será anexado com a lista existente.', ); \ No newline at end of file diff --git a/pkg/vtiger/translations/BritishLanguagePack_br_br/modules/Campaigns.php b/pkg/vtiger/translations/BritishLanguagePack_br_br/modules/Campaigns.php index 491aae868929f02cea4bdaac3d14031ee6a01289..6421e015d25743df016caa5eba9e3f780006246f 100644 --- a/pkg/vtiger/translations/BritishLanguagePack_br_br/modules/Campaigns.php +++ b/pkg/vtiger/translations/BritishLanguagePack_br_br/modules/Campaigns.php @@ -52,4 +52,8 @@ $languageStrings = array( 'Contacted - Successful' => 'Contacted - Successful' , 'Contacted - Unsuccessful' => 'Contacted - Unsuccessful' , 'Contacted - Never Contact Again' => 'Contacted - Never Contact Again', +); + +$jsLanguageStrings = array( + 'JS_APPENDED_TO_EXISTING_LIST' => '%s from the selected list will be appended with the existing list.', ); \ No newline at end of file diff --git a/pkg/vtiger/translations/Deutsch/modules/Campaigns.php b/pkg/vtiger/translations/Deutsch/modules/Campaigns.php index 1fba2d968aae62887d2903a7654e0d7b7df411bf..e296fba9fbf5047ddc55c1dc5a5d23825f9a393e 100644 --- a/pkg/vtiger/translations/Deutsch/modules/Campaigns.php +++ b/pkg/vtiger/translations/Deutsch/modules/Campaigns.php @@ -52,4 +52,8 @@ $languageStrings = array( 'Contacted - Successful' => 'erfolgreich kontaktiert' , 'Contacted - Unsuccessful' => 'ohne Erfolg kontaktiert' , 'Contacted - Never Contact Again' => 'Kontaktiert - nie wiederholen', +); + +$jsLanguageStrings = array( + 'JS_APPENDED_TO_EXISTING_LIST' => '%s aus der Liste werden mit der bestehenden Liste angehängt.', ); \ No newline at end of file diff --git a/pkg/vtiger/translations/Dutch/modules/Campaigns.php b/pkg/vtiger/translations/Dutch/modules/Campaigns.php index fa59f20eee201627808f9a396e64ebaa0942278d..efb513d3d84b19914f7f9813e1fa69786d12f7a4 100644 --- a/pkg/vtiger/translations/Dutch/modules/Campaigns.php +++ b/pkg/vtiger/translations/Dutch/modules/Campaigns.php @@ -52,4 +52,8 @@ $languageStrings = array( 'Contacted - Successful' => 'Contact gehad - Success' , 'Contacted - Unsuccessful' => 'Contact gehad - Geen success', 'Contacted - Never Contact Again' => 'Contact gehad - Nooit meer contacten', +); + +$jsLanguageStrings = array( + 'JS_APPENDED_TO_EXISTING_LIST' => '%s uit de geselecteerde lijst zal worden toegevoegd aan de bestaande lijst.', ); \ No newline at end of file diff --git a/pkg/vtiger/translations/French/modules/Campaigns.php b/pkg/vtiger/translations/French/modules/Campaigns.php index 269048a24d751d435ae0a0dd6f42eac147dc0f4d..81750402c14aa300c6ceac5eeed9b09eb0e4874d 100644 --- a/pkg/vtiger/translations/French/modules/Campaigns.php +++ b/pkg/vtiger/translations/French/modules/Campaigns.php @@ -52,4 +52,8 @@ $languageStrings = array( 'Contacted - Successful' => 'Contacté - avec succès' , 'Contacted - Unsuccessful' => 'Contacté - sans succès' , 'Contacted - Never Contact Again' => 'Contacté - Ne pas recontacter', +); + +$jsLanguageStrings = array( + 'JS_APPENDED_TO_EXISTING_LIST' => '%s de la liste sélectionnée sera ajouté à la liste existante.', ); \ No newline at end of file diff --git a/pkg/vtiger/translations/Hungarian/modules/Campaigns.php b/pkg/vtiger/translations/Hungarian/modules/Campaigns.php index 30909492c48c6b857dc74c8df8179a81a1af0734..d34dcfa8dd7a8671389bb28bbdfda29e5f3e708d 100644 --- a/pkg/vtiger/translations/Hungarian/modules/Campaigns.php +++ b/pkg/vtiger/translations/Hungarian/modules/Campaigns.php @@ -52,4 +52,8 @@ $languageStrings = array( 'Contacted - Successful' => 'Kapcsolatfelvétel - Sikeres', 'Contacted - Unsuccessful' => 'Kapcsolatfelvétel - Sikertelen', 'Contacted - Never Contact Again' => 'Kapcsolatfelvétel - FelejtÅ‘s örökre', +); + +$jsLanguageStrings = array( + 'JS_APPENDED_TO_EXISTING_LIST' => '%s A kiválasztott lista lesz hozzáfűzve a meglévÅ‘ listát.', ); \ No newline at end of file diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Campaigns.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Campaigns.php index 5c6e06962181f3d156a02b4ef2db62502e0f1d04..639226a90fb487a220dc45ca0a9d5c030e086926 100644 --- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Campaigns.php +++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Campaigns.php @@ -52,4 +52,8 @@ $languageStrings = array( 'Contacted - Successful' => 'Contacted - Successful' , 'Contacted - Unsuccessful' => 'Contacted - Unsuccessful' , 'Contacted - Never Contact Again' => 'Contacted - Never Contact Again', +); + +$jsLanguageStrings = array( + 'JS_APPENDED_TO_EXISTING_LIST' => "%s dalla lista selezionata verrà allegato con l'elenco esistente.", ); \ No newline at end of file diff --git a/pkg/vtiger/translations/MexicanSpanishLanguagePack_es_mx/modules/Campaigns.php b/pkg/vtiger/translations/MexicanSpanishLanguagePack_es_mx/modules/Campaigns.php index 108e82c403da6c1b28676fcd9a0be2c3d850f9eb..f4439af652a43f7233cd1026a0637102d2d40acd 100644 --- a/pkg/vtiger/translations/MexicanSpanishLanguagePack_es_mx/modules/Campaigns.php +++ b/pkg/vtiger/translations/MexicanSpanishLanguagePack_es_mx/modules/Campaigns.php @@ -52,4 +52,8 @@ $languageStrings = array( 'Contacted - Successful' => 'Contactado - Éxito' , 'Contacted - Unsuccessful' => 'Contactado - Fracaso' , 'Contacted - Never Contact Again' => 'Contactado - No volver a contactar', +); + +$jsLanguageStrings = array( + 'JS_APPENDED_TO_EXISTING_LIST' => '%s de la lista seleccionada se anexará a la lista existente.', ); \ No newline at end of file diff --git a/pkg/vtiger/translations/PolishLanguagePack_pl_pl/modules/Campaigns.php b/pkg/vtiger/translations/PolishLanguagePack_pl_pl/modules/Campaigns.php index 30bc3d52a197b8a5a7a433166e666473a7e60c62..fd83d48c7dc4923a5bb83f5d36b936e17c8abf1c 100644 --- a/pkg/vtiger/translations/PolishLanguagePack_pl_pl/modules/Campaigns.php +++ b/pkg/vtiger/translations/PolishLanguagePack_pl_pl/modules/Campaigns.php @@ -65,4 +65,8 @@ $languageStrings = array( 'Contacted - Successful' => 'Kontakt zakoÅ„czony powodzeniem', 'Contacted - Unsuccessful' => 'Kontakt zakoÅ„czony niepowodzeniem', 'Contacted - Never Contact Again' => 'Kontakt nie życzy sobie kontaktu w przyszÅ‚oÅ›ci', +); + +$jsLanguageStrings = array( + 'JS_APPENDED_TO_EXISTING_LIST' => '%s z wybranej listy zostanÄ… doÅ‚Ä…czone do istniejÄ…cej listy.', ); \ No newline at end of file diff --git a/pkg/vtiger/translations/RomanianLanguagePack_rm_rm/modules/Campaigns.php b/pkg/vtiger/translations/RomanianLanguagePack_rm_rm/modules/Campaigns.php index 38e45c54f9e5d8cbf568f9cbbcca0b5660e465f3..c1c77d90eb6ce0effd640e1d98160e3c2c4cd6b5 100644 --- a/pkg/vtiger/translations/RomanianLanguagePack_rm_rm/modules/Campaigns.php +++ b/pkg/vtiger/translations/RomanianLanguagePack_rm_rm/modules/Campaigns.php @@ -52,4 +52,8 @@ $languageStrings = array( 'Contacted - Successful' => 'Contacted - Successful' , 'Contacted - Unsuccessful' => 'Contacted - Unsuccessful' , 'Contacted - Never Contact Again' => 'Contacted - Never Contact Again', +); + +$jsLanguageStrings = array( + 'JS_APPENDED_TO_EXISTING_LIST' => '%s din lista selectată va fi anexată cu lista existentă.', ); \ No newline at end of file diff --git a/pkg/vtiger/translations/Russian/modules/Campaigns.php b/pkg/vtiger/translations/Russian/modules/Campaigns.php index 3b9595b876f44e8fec45c323ff20d59eb1ee34a9..41e044ff1ae9fa3f454a8d7bbfd7ef8cb4e2cf77 100644 --- a/pkg/vtiger/translations/Russian/modules/Campaigns.php +++ b/pkg/vtiger/translations/Russian/modules/Campaigns.php @@ -52,4 +52,8 @@ $languageStrings = array( 'Contacted - Successful' => 'УÑпешный Контакт', 'Contacted - Unsuccessful' => 'Ðеудачный Контакт', 'Contacted - Never Contact Again' => 'Ðикогда не Контактировать', +); + +$jsLanguageStrings = array( + 'JS_APPENDED_TO_EXISTING_LIST' => '%s из выбранного ÑпиÑка будут добавлены Ñ ÑущеÑтвующим ÑпиÑком.', ); \ No newline at end of file diff --git a/pkg/vtiger/translations/Spanish/modules/Campaigns.php b/pkg/vtiger/translations/Spanish/modules/Campaigns.php index 82f15dc61e831dc7d0038251b75076dcb0672fad..45d70e34492445d8242d92e4d8aa0643351d3d44 100644 --- a/pkg/vtiger/translations/Spanish/modules/Campaigns.php +++ b/pkg/vtiger/translations/Spanish/modules/Campaigns.php @@ -60,4 +60,8 @@ $languageStrings = array( 'Contacted - Successful' => 'Respuesta - Satisfactoria' , 'Contacted - Unsuccessful' => 'Respuesta - Insatisfactoria', 'Contacted - Never Contact Again' => 'Respuesta - No volver a contactar', +); + +$jsLanguageStrings = array( + 'JS_APPENDED_TO_EXISTING_LIST' => '%s de la lista seleccionada se anexará a la lista existente.', ); \ No newline at end of file diff --git a/pkg/vtiger/translations/Sweden_sv_se/modules/Campaigns.php b/pkg/vtiger/translations/Sweden_sv_se/modules/Campaigns.php index 6ee8898f14af0c95104e9052cfbfcc8929c8f9f2..bffe7d5d706b09e3264f7aa391fe3f75d2121634 100755 --- a/pkg/vtiger/translations/Sweden_sv_se/modules/Campaigns.php +++ b/pkg/vtiger/translations/Sweden_sv_se/modules/Campaigns.php @@ -67,4 +67,8 @@ $languageStrings = array( 'Contacted - Never Contact Again' => 'Kontaktade Aldrig Kontakt Igen', +); + +$jsLanguageStrings = array( + 'JS_APPENDED_TO_EXISTING_LIST' => '%s frÃ¥n den valda listan kommer att läggas med den befintliga listan.', ); \ No newline at end of file diff --git a/pkg/vtiger/translations/TurkishLanguagePack_tr_tr/modules/Campaigns.php b/pkg/vtiger/translations/TurkishLanguagePack_tr_tr/modules/Campaigns.php index e76396057c1d8aaa5b007d359af7f4af25300d2b..f07fbf3ef0cf21fa736c8e0b83d9d8f46329cdaa 100644 --- a/pkg/vtiger/translations/TurkishLanguagePack_tr_tr/modules/Campaigns.php +++ b/pkg/vtiger/translations/TurkishLanguagePack_tr_tr/modules/Campaigns.php @@ -52,4 +52,8 @@ $languageStrings = array( 'Contacted - Successful' => 'Contacted - Successful' , 'Contacted - Unsuccessful' => 'Contacted - Unsuccessful' , 'Contacted - Never Contact Again' => 'Contacted - Never Contact Again', +); + +$jsLanguageStrings = array( + 'JS_APPENDED_TO_EXISTING_LIST' => '%s seçili listeden mevcut liste ile eklenir.', ); \ No newline at end of file