tsolucio / corebos Goto Github PK
View Code? Open in Web Editor NEWcore Business Operating System. An OPEN SOURCE business application that helps small and medium business handle all the day to day tasks.
Home Page: https://corebos.com
core Business Operating System. An OPEN SOURCE business application that helps small and medium business handle all the day to day tasks.
Home Page: https://corebos.com
Use coreBOS translation module to correctly translate picklist values on search
The way picklists are designed is to save the exact picklist value in the database field, this is very nice for searching IF we use only one language, but it makes it almost impossible to get right in a multi-language install. In order to get this right, we have created the coreBOS translation module.
Add the two missing filter conditions:
I was trying to run the a webservice query and kept getting an error.
I was trying to get Contacts related to a Campaign.
$docID = '17x130433'; // Campaign
$module = "Campaigns";
$relModule = "Contacts";
$queryParameters = array (
'limit'=> '3',
'offset'=>'0'//,
//'orderby'=> ''
);
$params = array(
"sessionName" => $this->token,
"operation" => "getRelatedRecords",
"id" => $docID,
"module" => $module,
"relatedModule" => $relModule,
"queryParameters" => json_encode($queryParameters)
);
Here was the error:
1 | 0.0010 | 767544 | {main}( ) | ../webservice.php:0
2 | 0.3448 | 43563728 | OperationManager->runOperation( ) | ../webservice.php:172
3 | 0.3448 | 43564568 | call_user_func_array:{include/Webservices/OperationManager.php:138} ( ) | ../OperationManager.php:138
4 | 0.3448 | 43565328 | getRelatedRecords( ) | ../OperationManager.php:138
5 | 0.3634 | 43955608 | __getRLQuery( ) | ../GetRelatedRecords.php:75
6 | 0.5029 | 45762120 | call_user_func_array:{/home/e-smith/files/ibays/testbay/html/corebos/include/Webservices/GetRelatedRecords.php:293} ( ) | ../GetRelatedRecords.php:293
7 | 0.5029 | 45762640 | Campaigns->get_contacts( ) | ../GetRelatedRecords.php:293
8 | 0.5505 | 45849000 | Campaigns->add_status_popup( ) | ../Campaigns.php:300
Seems that the Campaigns.php expects $related_list['entries'] to be set, which it isn't if this is a WS query.
I did the following hack which works, but could probably be dealt with a lot better :-)
--- a/modules/Campaigns/Campaigns.php
+++ b/modules/Campaigns/Campaigns.php
@@ -424,17 +424,22 @@ class Campaigns extends CRMEntity {
$this->campaignrelstatus[$row['campaignrelstatus']] = $r;
}
}
- foreach($related_list['entries'] as $key => &$entry)
- {
- $popupitemshtml = '';
- foreach($this->campaignrelstatus as $campaingrelstatus)
- {
- $camprelstatus = $campaingrelstatus['campaignrelstatusi18n'];
- $popupitemshtml .= "<a onmouseover=\"javascript: showBlock('campaignstatus_popup_$key')\" href=\"javascript:updateCampaignRelationStatus('$related_module', '".$this->id."', '$key', '".$campaingrelstatus['campaignrelstatusid']."', '".addslashes($camprelstatus)."');\">$camprelstatus</a><br />";
- }
- $popuphtml = '<div onmouseover="javascript:clearTimeout(statusPopupTimer);" onmouseout="javascript:closeStatusPopup(\'campaignstatus_popup_'.$key.'\');" style="margin-top: -14px; width: 200px;" id="campaignstatus_popup_'.$key.'" class="calAction"><div style="background-color: #FFFFFF; padding: 8px;">'.$popupitemshtml.'</div></div>';
-
- $entry[$status_column] = "<a href=\"javascript: showBlock('campaignstatus_popup_$key');\">[+]</a> <span id='campaignstatus_$key'>".$entry[$status_column]."</span>".$popuphtml;
+
+ if (isset($related_list['entries'])) {
+
+ foreach($related_list['entries'] as $key => &$entry)
+ {
+ $popupitemshtml = '';
+ foreach($this->campaignrelstatus as $campaingrelstatus)
+ {
+ $camprelstatus = $campaingrelstatus['campaignrelstatusi18n'];
+ $popupitemshtml .= "<a onmouseover=\"javascript: showBlock('campaignstatus_popup_$key')\" href=\"javascript:updateCampaignRelationStatus('$related_module', '".$this->id."', '$key', '".$campaingrelstatus['campaignrelstatusid']."', '".addslashes($camprelstatus)."');\">$camprelstatus</a><br />";
+ }
+ $popuphtml = '<div onmouseover="javascript:clearTimeout(statusPopupTimer);" onmouseout="javascript:closeStatusPopup(\'campaignstatus_popup_'.$key.'\');" style="margin-top: -14px; width: 200px;" id="campaignstatus_popup_'.$key.'" class="calAction"><div style="background-color: #FFFFFF; padding: 8px;">'.$popupitemshtml.'</div></div>';
+
+ $entry[$status_column] = "<a href=\"javascript: showBlock('campaignstatus_popup_$key');\">[+]</a> <span id='campaignstatus_$key'>".$entry[$status_column]."</span>".$popuphtml;
+ }
+
}
return $related_list;
}
I haven't tested other combinations yet but am wondering if similar issues exist elsewhere.
Pls. add this code to CreateTables.inc.php
in function populateLinks()
before installation to enable display of 'Contact Hierarchy' in 'DetailView.tpl' (Pull request w/code follows):
$contactInstance = Vtiger_Module::getInstance('Contacts');
$contactInstance->addLink(
'DETAILVIEWBASIC', 'LBL_ADD_NOTE',
'index.php?module=Documents&action=EditView&return_module=$MODULE$&return_action=DetailView&return_id=$RECORD$&parent_id=$RECORD$',
'themes/images/bookMark.gif'
);
$contactInstance->addLink('DETAILVIEWBASIC', 'LBL_SHOW_CONTACT_HIERARCHY', 'index.php?module=Contactss&action=ContacttHierarchy&contactid=$RECORD$');
...```
Best regards
Add sorting setting on filters so we can define how the filter should be shown on initial load without having to click on the column
Using Chrome.
In step 7 of creating/editing a report the standard conditions are hidden but the height of the hidden rows is respected as a big blank space. The div inside the rows are hidden but the rows aren't so, for some reason the height the div will have is reserved.
In Firefox this looks correct:
The code is in:
Smarty/templates/ReportFilters.tpl
In some lead conversions, two duplicate contacts are created. I don't know the exact steps but it happens a lot with the coreBOS Tests database
We must find the steps to reproduce it and fix the problem.
Found a misspelling of 'notification' inherited from vTiger:
[root@home Webservices]# diff -ruN DataTransform.php.old DataTransform.php
--- DataTransform.php.old 2017-08-14 10:20:34.102900806 +0200
+++ DataTransform.php 2017-08-14 10:21:36.692882669 +0200
@@ -108,9 +108,9 @@
$row['contact_id'] = implode(';', $ctowsids);
}
} elseif(strtolower($meta->getEntityName()) == "calendar") {
- if(empty($row['sendnotification']) || strtolower($row['sendnotificaiton'])=='no'
- || $row['sendnotificaiton'] == '0' || $row['sendnotificaiton'] == 'false'
- || strtolower($row['sendnotificaiton']) == 'n') {
+ if(empty($row['sendnotification']) || strtolower($row['sendnotification'])=='no'
+ || $row['sendnotification'] == '0' || $row['sendnotification'] == 'false'
+ || strtolower($row['sendnotification']) == 'n') {
unset($row['sendnotification']);
}
}
This is one of the most requested functionality and I have a good starting point donated by a user of coreBOS
Hi to all and thanks in advance to anyone that can help me.
I created a new custom report form the starting module "account" . Then i have inserted as related module "comments".
The report work fine but when i filter it with the date on related module the result is wrong.
Can someone help me or someone has already solved this issue?
Thanks a lot
Mike
We have created a company module to substitute the settings organization.
We need to:
In the future, we will enhance this to get company information from the company selected on the records
Sure this isn't a biggy but I added a Contact, then an Organisation
I went back to the Contact and tried to link an organisation.
I get the search box, can type in letters, but do not seem to be able to search for anything.
Hi,
when using the jqueryversion. no reminder pops up on the screen
seems the issue come on general.js file
line 3107
if(typeof(Ajax) == 'undefined') {
return;
}
Profile editing has a lot of variables, too many to manage correctly so we must change the way this works either moving it to Ajax or, better SSE
Integrate the checkfieldusage.php script into the Layout Editor in order to show the usage of a field before permitting it to be deleted.
We recently added support for emails on all modules that have an email field. We have to extend the MailManager to respect this and also work correctly with any module that has an email field.
Migrate uitype 59 on FAQ and Ticket to uitype 10 and eliminate all references to 59
Working with inventory modules via web service does not support defining taxes for the record, it uses the taxes defined in the system at the moment of creation.
We must get the taxes to apply from the input information and use those
Hi,
seems the function still there :
Create a related pane business map on a module, make sure it works.
Now add a related list block on the main tab.
The related pane stops working
Just started playing with the Mobile front end and noting stuff as I go.
The Login page has the boxes going right to the edge.
I think a small change to the css like this might help (not sure how this affects it elsewhere so not hacking to much)
theme.css around line 44
ui-field-contain
margin: 0.5em;
Without:
InventoryDetails module is not correctly configured to support multicurrency.
We must change the uitype of the fields, add some other fields, fill them, and test.
http://corebos.org/documentation/doku.php?id=en:devel:multicurrency
Import starts (after properly completing steps 1 - 3) and then seems to hang indefinitely. Enabling PHP error tracking brought up:
Fatal error: Class 'PBXManagerAfterSaveHandler' not found in /var/www/corebos-master/include/events/VTEventTrigger.inc on line 140
Best regards
PS: Import didn't offer a field Contact-ID to fil in from .csv!
Initial integration with Mautic
They already have a vtigercrm integration based on webservice, so this should be easy.
This would be a PR for the Mautic project.
Change the helpdesk module name
After migrating to chartjs we have lost the graphs section parameters. I suppose that these values are being generated as this worked before but we must find them and add them back.
As far as I can see the mobile web page does not have a logout button anywhere?
This should at least be an option ?
Ok, may be it is me, and maybe not :-)
I am trying to add an Image to a Product but I think there may be an issue with the array handling in Update.php
here's the code:
if (!empty($element['attachments'])) {
foreach ($element['attachments'] as $fieldname => $attachment) {
$filepath = $root_directory.'storage/'.$attachment['name'];
file_put_contents($filepath, base64_decode($attachment['content']));
$_FILES[$fieldname] = array(
'name' => $attachment['name'],
'type' => $attachment['type'],
'tmp_name' => $filepath,
'error' => 0,
'size' => $attachment['size']
);
}
I realised this should theoretically handle multiple attachments.
I have an array as follows (see he screenshot):
$element
=> attachments
==> content
==> name
==> size
==> type
First issue is the $filepath... $attachment['name] shows the correct filename but I actually end up with a path like this:
....corebos/storage/i
So the $filepath seems not quite right somehow.
file_put_contents then fails.
Second I would have expected it to have been something like:
.....corebos/storage/2017/August/weekx/123456_image001.jpg ??(where 123456 is the id)
Here's an odd one then.
I am trying to Create a Product. Very simple:
$assignedUserId = "1";// This is the 'Handler' in the Product Record - need to find the user or group, or at least fix it.
$moduleName = 'Products';
$productName = "Widget Five";
$newRecord = array('productname'=>$productName, 'assigned_user_id'=>$assignedUserId);
// We add it
$createRec = $crmobject->addrecord($moduleName, $newRecord);
For some odd reason I cannot yet understand, the object is created in the DB, but CRMEntity->save does another retrieve after creating the record, and this then fails.
The attached image shows where we got to in debugging:
You can see the entry is created (so I am not going mad!):
Any ideas ?
Hi,
I accomplished to make SalesOrder Report faster. From "500 Error" to 10 sec of query and just with this statement in database:
ALTER TABLE vtiger_invoice_recurring_info
ADD PRIMARY KEY (salesorderid);
I dont know where you create database, so I made an Issue, hope you dont mind :)
Mass editing can be a very long running process. Sending a request to modify a couple of fields on 1000 records can take a long time. Currently, coreBOS sends this request and waits for the process to end.
This can produce timeouts in the browser or, worse, on the webserver.
So, the idea is to modify mass edit to send a message with the work to be done. Then the task manager will do the work in background so there is no timeout issues and no blocking in the browser. The background task will report its progress as messages on the queue which will be consumed by a browser process that reads the messages and informs of the progress on screen. This will probably be implemented using server side events and service workers.
I was wondering if there was a way to send an FAQ (probably through a template) to a client.
To give an example of a situation:
We have a bug in a program, we make an FAQ out of the ticket. Another customer calls in with the same issue. The desk support person sends them the FAQ with the workaround.
Hi,
using latest code (no custom code , using MajorLabel Theme) :
Uncaught ReferenceError: fieldname is not defined
doformValidation @ general.js?v=5.5.0:1127
dtlviewModuleValidation @ dtlviewajax.js:486
dtlViewAjaxSave @ dtlviewajax.js:147
onclick @ index.php?action=DetailView&module=Contacts&parenttab=Marketing&record=2&activity_mode=&viewname=0&โฆ:1479
At our sites bookmarks with https not working.
Https sites block that open inside form.
Create a option for open bookmark at new window at this case
Due Date should be greate than Start Date
Start Date: 2015-12-21
Due ate: 2015-12-31
Best regards
We created an employee module many years ago. The final goal is to use this module to substitute the users settings extension.
I'm noticing a lot of extra sessions left open on server between localhost-mysql when running corebos. Anyone else noticing this? I'm testing CoreBOS and Vtiger 6.3. I have not noticed this with vtiger 6.3. Any ideas?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.