Jump to content

Vitalikssssss

Caspio Evangelist
  • Content Count

    504
  • Joined

  • Last visited

  • Days Won

    49

Everything posted by Vitalikssssss

  1. Hi @maramedinan, It looks like for report with grouping additional <tr> added in HTML, so you need to use: nth-child(15) let arr = document.querySelectorAll('td:nth-child(15).cbResultSetCalculatedField'); Regards, vitalikssssss
  2. Hi @maramedinan, Solution provided above will not work unless the code placed in HTML block (row element). I have created a different snippet for highlighting some particular cell that you can try. Please make sure that you replace number that refer to the column number in below code. Column count starts with "1". The following code should go into DataPage Footer. <script> document.addEventListener('DataPageReady', function(event){ let arr = document.querySelectorAll('td:nth-child(4).cbResultSetCalculatedField'); //change number of the column in "nth-child(4)" arr.forEach(element => { if (element.innerHTML > 7) { // your target value element.style.background = 'red'; // color that would be applied on cell that meets the criteria } }); }); </script> Hope this helps. Regards, Vitalikssssss
  3. Hi @JanineB, It looks like the "$" currency sign added by formatting is the reason for element value not been recognized as a number. You may add a replace function with regex to remove unwanted characters from value formatted as currency. So, your JavaScript would look like this: <script> var elems = document.getElementsByTagName("td"); for (var i=0, m=elems.length; i<m; i++) { if (elems[i].innerHTML.replace(/[^0-9\.-]+/g,"") > 0) { elems[i].style.textDecoration = "line-through"; } } </script> Regards, vitalikssssss
  4. Hi @ChristopherNORD, I would not recommend using IF/THEN block for this case. I would rather recommend using a WHERE clause in Update block to check the status field. Regards, vitalikssssss
  5. Hi @KamAB, I did not find an attribute within the Styles section of Caspio Bridge, so you may add the following snippet in DataPage Header: <style> div > span { font-size: x-large !important; font-weight: 700 !important; } </style> Regards, vitalikssssss
  6. Hi @jazmichaelking, It looks like G Suite supports SAML 2.0 (Security Assertion Markup Language) that also used by Caspio SAML, however G Suite is not listed as one of the Idp provider that has been verified by Caspio. I haven`t done this type of integration yet but overall it should be possible. The only challenge I see is to understand how to store usernames in Caspio table. I guess it is possible to find out the format of user_name returned by Idp from G Suite support. Here are some links that should help: https://howto.caspio.com/authentications-and-connections/single-sign-on/ https://support.google.com/a/answer/6087519 Hope this helps. I would appreciate if you share with a community if you succeed or not. Regards, vitalikssssss
  7. Hi @ChristopherNORD, Perhaps it would be a good idea to add a checkbox field to table to distinguish when field Date_Added can be editable (e.g. Editable: Yes/No). You may add an additional condition in WHERE clause to filter-out records that has "Editable" field set to "No" (unchecked). Hope this helps. Regards, Vitalikssssss
  8. Hi @DDNex, You may check the following topic that explains how to hide a column in the tabulart report: Hope this helps. Regards, vitalikssssss
  9. Hi @BillW, Please share with us a package of your DP with dependencies. No data required. I will take a closer look at the settings you have applied. Regards, vitalikssssss
  10. Hi @JKSGT, What Datapage type do you use? Screenshot from a browser console (Windows: Ctrl+Shift+I | Mac: Cmd + Shift + I) would help to understand your case better. Regards, vitalikssssss
  11. Hi @BillW, There is a small error in this part of your code. There is no "value" attribute available for element Calculated value because value is rendered within a <span> tags. You would need to use "InnerHTML" property to get the text value of Calculated field. So, above line of code should look like this: let fan = document.getElementById("InsertRecordODE_Fan_TIR").innerHTML; Hope this helps. Regards, Vitalikssssss
  12. Hi @Mik271828, It looks like the Datapage has been deployed within a container which has width <1024 px, hence responsive CSS has been applied on styling. You may disable a responsive option if you do not use Datapages on tablet/mobile devices or go into the Style section -->Source and change the HTML properties related to tablet/phone CSS. Hope this helps. Regards, vitalikssssss
  13. Hi @Elderberg, I would like to share a different approach, so instead of using a submit() function I have used the click() function on Submit button to mimic submit event. Also, it is possible to use AppKey of the Datapage in order to submit the particular Datapage if more than one is deployed. <script type="text/javascript"> document.addEventListener('BeforeFormSubmit', function (event) { if (event.detail.appKey == 'XXXXXXXXXXXX') { event.preventDefault(); //do smth before Submit document.querySelector(`#Submit${event.detail.uniqueSuffix}`).click(); } }); </script> Hope it helps. Regards, vitaliksssss
  14. Hi @asesores, That is very interesting question. I come up with a workaround which would allow to create a cross join between 2 tables in Caspio. Basically, you would need to add an additional field in both tables and specify the identical values for all records. Table #1 Table #2 Create a View with Full Outer Join by the Join Field: Here is a result which you shall have: Hope this helps. Regards, vitalikssssss
  15. Hi @Josh1425, Triggered Action settings looks inline with the desired output. Do you have a Triggered Action on table "Entity_Information"? Do you see data in table New_Intake_Information_Form within fields used in Triggered action? Regards, vitalikssssss
  16. Hi @jorgeorbit, Perhaps you did not follow the correct syntax while specifying the values of the fields. It would be easier to narrow down the issue if you send a Body of the request and specify datatypes of fields which you use to create a record. Regards, vitalikssssss
  17. Hi there, I have some check boxes, for example 5 and I want the form to not being submitted if at least one of them is checked. How can I do that? Thank you for looking into my question.
  18. Hi @Joanne, the way how you reference fields is incorrect for Inline Edit action of Tabular report and also you need to use a special event to capture the moment then user clicked on Edit/Update button/link. You may try to use the following snippet, however make sure that name of the fields are correct and have prefix "InlineEdit". <script> document.addEventListener('DOMSubtreeModified', function(){ let element = document.querySelector('[id*="InlineEdit"]'); if (element) { let regExp = /^[0-9]+$/; //Change the name of the fields let arrEl = Array.from(document.querySelectorAll('[id*="InlineEditPhone"], [id*="InlineEditEmergencyPhone"], [id*="InlineEditPhone3"]')); arrEl.forEach(function(el) { el.maxLength = 14; el.addEventListener('input', function(v_e) { if (regExp.test(v_e.key)) { this.value = this.value.substr(0, this.value.length - 1); return false; } let v_value = (this.value.replace(/[^\d]/g, '')); if (v_value.length >= 7 && v_value.length < 10) { this.value = (v_value.substring(0, 3) + "-" + v_value.substring(3, 7) + v_value.substring(7, v_value.length)); } else if (v_value.length >= 10) { this.value = ("(" + v_value.substring(0, 3) + ") " + v_value.substring(3, 6) + "-" + v_value.substring(6, 10) +v_value.substring(10, v_value.length)); } }); }); } }); </script> Hope this helps. Regards, vitalikssssss
  19. Hi @Shamir, It is possible to use External parameters within SQL query in Calculated field, so you would need to pass the parameter "on exit" from Virtual field and add it in WHERE clause of your SQL query. Hope this helps. Regards, vitaliksssss
  20. Hi @JMR21, You would need to add a line of code which would click on Search/Submit button after user clicks Clear Form, so it could pass empty string parameters to other Datapages. So, the JS snippet could look like this: <button type="button" onclick="resetForm()">Clear Form</button> <script> function resetForm() { var myForm = document.querySelector('form[action*="[@cbAppKey]"]').querySelectorAll('input:not([type=submit]):not([type=hidden]), textarea, select'); myForm.forEach(function(elem) { elem.value=""; }); var searchBtn = document.querySelector('.cbSearchButton').click(); } </script> Regards, vitalikssssss
  21. Hi @Dallin, It looks like the issue is specific to your account and it is better to reach out to Support Team of Caspio. https://www.caspio.com/support They usually unavailable by phone on weekends, however LiveChat should be available. Regards, vitalikssssss
  22. Hi, I have recently tried to do something similar and came across the issue that custom button cannot serve delete event, so I have modified a script slightly. Here is my button in HTML block: <input class="cbDeleteButton" id="Mod0DeleteRecord1" name="Mod0DeleteRecord" type="submit" value="Delete" /> and here is my code from the DataPage Footer: <script> document.addEventListener('DataPageReady', assignEvent); function assignEvent(event){ //assign click event to custom button document.querySelector('#Mod0DeleteRecord1').addEventListener('click', ()=>{handler(event.detail.uniqueSuffix)}); //hide default button document.querySelector(`#Mod0DeleteRecord${event.detail.uniqueSuffix}`).style.display = 'none'; document.removeEventListener('DataPageReady', assignEvent); } function handler(el){ //click on default delete button document.querySelector(`#Mod0DeleteRecord${el}`).click(); } </script> Hope it helps someone. Regards, vitalikssssss
  23. Hi @jrifkin, Glad that heard that solution has helped. Here is updated version which would also capture the file extension. Please note that you should use the following naming convention for your fields which would store extension: File_1_ext File_2_ext File_3_ext etc <script type="text/javascript"> document.addEventListener('DataPageReady', fileInputEvent) function fileInputEvent() { const fileFields = ['File_1', 'File_2']; fileFields.forEach(el=>{ document.querySelector(`#InsertRecord${el}`).addEventListener('change', fileInputHandler); }); document.removeEventListener('DataPageReady', fileInputEvent) } function fileInputHandler(event) { //Store file size const fileSizeInput = document.querySelector(`#${event.target.name}_size`); fileSizeInput.value = event.target.files[0].size; //Store file extension const fileSizeExt = document.querySelector(`#${event.target.name}_ext`); fileSizeInput.value = event.target.files[0].name.split('.').pop(); } </script> Regards, vitalikssssss
  24. Hi @JMR21, The above code needs to be updated since now all Caspio Datapages have AJAX and special event handler "DataPageReady". You may try the following updated JavaScript: <script> document.addEventListener('DataPageReady', assignEvent); function formatAsDollars(el) { el.value = el.value.replace(/[^\d]/g,'').replace(/(\d\d?)$/,'$1').replace(/^0+/,'').replace( /\d{1,3}(?=(\d{3})+(?!\d))/g , "$&,"); el.value = el.value ? '$' + el.value : ''; } function assignEvent(){ let fields = ["Field_1", "Field_2"]; //specify your fields here fields.forEach(element => { element = "InsertRecord" + element; // replace "InsertRecord" with "EditRecord" for Details/Single Record Update DP document.getElementById(element).onkeyup = function() { formatAsDollars(this); } document.getElementById(element).onchange= function() { formatAsDollars(this); } }); } </script> Regards, vitalikssssss
  25. Hi @Bradl, Caspio Payment processor do not have an option for recurring charges. You may check with Professional Services Team of Caspio if they can built with custom programming. Regards, vitalikssssss
×
×
  • Create New...