Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation since 11/16/2018 in all areas

  1. 2 points
    Hello Batchini! Well, there would be two ways how to create this. If we're going to use trigger, this may be a complex one. One easy way I thought of is with the use of Calculated Fields, but this would only be on a DataPage Level. You can use this formula to get the Minimum Value. SELECT MIN(FieldName) FROM Child WHERE ID = target.[@field:FieldID] Assuming if you have a foreign Key inside your child table. So we'll be using this formula to display the minimum value, Datasource would be your parent table. I hope this helps. Scar();
  2. 2 points
    Hello @TroubleShooter, The reason why the ampersand symbol is being cut is because Caspio renders the link literally. In this example: <a href="https://www.google.com?myParameter=[@field:someField]"> Link </a> If "someField" evaluates to "Some Value & Another Value" then the mark-up would result to <a href="https://www.google.com?myParameter=Some Value & Another Value"> Link </a> This is when urlencoding comes into play. What this does is substitutes the special characters in a standard HTML format which interprets characters a different way. You may try using my code snippet below. 1.) Just replace the link ID with the id attribute of your link. 2.) repeat the addParameter function as needed. The first argument is your parameter name, and the second argument is your field value. <a href="#" id="link-1">MyLink</a> <script> // DO NOT TOUCH FROM THIS POINT var params = []; addParameter = function(qs, val){ params.push(`${qs}=${encodeURIComponent(val)}`); } //UP TO THIS POINT var link_id = "link-1"; var base_url = "https://SomeDomainFrom.caspio.com/dp/926560as124321324dasd00a6523f123123624543123423fc0453b9093"; addParameter('boo', '[@field:SelectedAction]'); //repeat as needed addParameter('far', '[@field:SelectedAction]'); // DO NOT TOUCH FROM THIS POINT var queryString = params.join("&"); document.querySelector(`#${link_id}`).href = `${base_url}?${params.join("&")}` //UP TO THIS POINT </script> Works for me. -DN31337!
  3. 2 points
    SunakoChan

    Tooltip

    Hi @telly, This is doable, you just need to add <image src="IMAGEURL"> on your hint. Sample Result Bellow:
  4. 2 points
    Hello Azriel. I have similar validation in my App, I have used the JavaScript below to implement this validation. <script type= "text/javascript" > var input1 = document.querySelector('#InsertRecordValue1'); var input2 = document.querySelector('#InsertRecordValue2'); var input3 = document.querySelector('#InsertRecordValue3'); var input4 = document.querySelector('#InsertRecordValue4'); document.querySelector('#caspioform').onsubmit = function(e) { e.preventDefault(); if (input1.value.length > 0){ this.submit(); } else if (input2.value.length > 0){ this.submit(); } else if (input3.value.length > 0){ this.submit(); } else if (input4.value.length > 0){ this.submit(); } else { alert('Please fill at least one field to continue'); input.focus(); } } </script> If the code above will not work, you will need to change the '#InsertRecordValue' on the top most part of the code to the name of your field in your DataPage. To see that, just do the steps below. 1. Go to the preview of your DataPage 2. Press F12 on your keyboard, a form should be display. This is the browser developer console 3. Press Ctrl + Shift + C on your keyboard, then hover over your text field. You should be able to see its element ID, then click on this field. 4. You should be redirected to its code, just double click the id of this element. Then paste it on the JavaScript above to update it. Hope this help, if you are having an error making the code above work. Just provide me the URL of your datapage or web page and I will update it for you Regards
  5. 1 point
    The value for X should be in the Default Value field under Field Options.
  6. 1 point
    Vitalikssssss

    Line Chart time series

    Hi @Corpcatalog, You can build such Chart in Caspio but you would need to modify your table first. You table should look like the following: You can build the following Chart once you transform your table: You may import attached Datapage to your account in order to see the settings for the Chart Datapage. Hope this helps. Regards, vitalikssssss CaspioData_2019-Sep-10_1309.zip
  7. 1 point
    Andrew

    XIRR function

    Hello @Vitalikssssss! It is possible to implement such a formula within Tabular report using additional JS. Please follow these steps: 1. You need to create additional APP parameter to use the "moment.js" library. Please check this article to get familiar with the APP Parameters in Caspio - https://howto.caspio.com/apps/app-parameters/ 2. Create the Tabular Report and add the Header/Footer. Please insert this code into the Header: <div style='display:flex; justify-content:flex-start;padding:30px;'> <input placeholder="Guess Rate, %" id='rate'></input> <button id='click' class='cbResultSetAddButton' style='margin-left:10px;'>Calculate XIRR</button> <div id='result' style='margin-left:10px;'></div> </div> <script src="[@app:URL_1]"></script> <script> "use strict"; document.addEventListener('DataPageReady', function () { document.querySelector('#click').addEventListener('click', function (event) { var formatDate = 'DD/MM/YYYY'; var columnDateNumber = 2; //Change based on your column position on a result set var columnValuesNumber = 3; //Change based on your column position on a result set //Not changeable part var datesSelector = "tr>td:nth-child(".concat(columnDateNumber, ")[class^=\"cbResultSetData\"]"); var valuesSelector = "tr>td:nth-child(".concat(columnValuesNumber, ")[class^=\"cbResultSetData\"]"); var dates = []; var values = []; document.querySelectorAll(datesSelector).forEach(function (item, index) { if (!item.hasAttribute('style')) { return dates.push(item.innerText); } }); document.querySelectorAll(valuesSelector).forEach(function (item, index) { if (!item.hasAttribute('style')) { return values.push(+item.innerText); } }); var guess = +document.querySelector('#rate').value; var some; if (guess != 0) { some = guess/100; } document.querySelector('#result').innerHTML = "Result:<strong>".concat(XIRR(values, dates, some, formatDate)*100, "%</strong>"); }); }); function XIRR(values, dates, guess, local) { // Credits: algorithm inspired by Apache OpenOffice // Calculates the resulting amount var irrResult = function irrResult(values, dates, rate) { var r = rate + 1; var result = values[0]; for (var i = 1; i < values.length; i++) { result += values[i] / Math.pow(r, moment(dates[i], local).diff(moment(dates[0], local), "days") / 365); } return result; }; // Calculates the first derivation var irrResultDeriv = function irrResultDeriv(values, dates, rate) { var r = rate + 1; var result = 0; for (var i = 1; i < values.length; i++) { var frac = moment(dates[i], local).diff(moment(dates[0], local), "days") / 365; result -= frac * values[i] / Math.pow(r, frac + 1); } return result; }; // Check that values contains at least one positive value and one negative value var positive = false; var negative = false; for (var i = 0; i < values.length; i++) { if (values[i] > 0) positive = true; if (values[i] < 0) negative = true; } // Return error if values does not contain at least one positive value and one negative value if (!positive || !negative) return "#NUM!"; // Initialize guess and resultRate var guess = typeof guess === "undefined" ? 0.1 : guess; var resultRate = guess; // Set maximum epsilon for end of iteration var epsMax = 1e-10; // Set maximum number of iterations var iterMax = 50; // Implement Newton's method var newRate, epsRate, resultValue; var iteration = 0; var contLoop = true; do { resultValue = irrResult(values, dates, resultRate); newRate = resultRate - resultValue / irrResultDeriv(values, dates, resultRate); epsRate = Math.abs(newRate - resultRate); resultRate = newRate; contLoop = epsRate > epsMax && Math.abs(resultValue) > epsMax; } while (contLoop && ++iteration < iterMax); if (contLoop) return "#NUM!"; // Return internal rate of return return resultRate; } </script> You should change the selectors of your Date and Value fields, if they are placed in the different position. Selectors can be changed here: var columnDateNumber = 2; //Change based on your column position on a result set var columnValuesNumber = 3; //Change based on your column position on a result set Please find the print screen attached. Do not forget to Disable the HTML editor. Also, find the dummy application with this customization attached - XIRR_Function_1_0_2019-Aug-22_1503.zip Please let me know if you need any assistance.
  8. 1 point
    Barbie

    Centered Report Search

    Hi @joneslovescaspio, You can add the center tag and the close tag of center in the header and Footer. So basically, in your header, you need to paste this <center> <style> table[class*="cbFormTable"] { border: none !important; background: white; } </style> and in the footer just paste the end tag of center. </center> Please note that I just added a sample design for your search form using CSS. You can also change that based on what design you prefer. Hope it works. -Barbie
  9. 1 point
    Vitalikssssss

    Button to Submit Name

    Hi @kpcollier, I have seen similar behavior on Caspio Ready Made App called Resource scheduling. http://apps.caspio.com/demo9/rs/login.html Login in as a member, perform a simple search and you will see a Tabular Report with "Reserve this Item" button which performs similar logic. I believe you need the following items in order to create similarly flow within your app: 1. Single record update form with default elements hidden by CSS. 2. Embed this DP in the HTML block of the report by using the Iframe deployment method. I need to mention that DP performance might decrease if you have a lot of records on Result set (e.g. 250 per page). Hope this helps. Regards, Vitalikssssss
  10. 1 point
  11. 1 point
    I think it would be better if you can create a test datapage and check if that will work. If the replicated page works, then there is something wrong with your URL in your original link. Re-deploy and re-paste the URL of the deployed DataPage. Hence, if the replicated Datapage still does not work, check your HTML code.
  12. 1 point
    Thanks for the offer HeezyMeezy. Would love to take you up on this but unfortunately I'm weighed down with client confidentiality issues - I've got to first come up with a way of unpicking the code to just show the essentials. Will let you know if I get there!
  13. 1 point
    You may try the code below in your DataPage's footer. Please disable first the HTML editor. <script> var username = document.getElementById("InsertRecordUsername"); username.addEventListener("keyup", myFunction, true); function myFunction() { document.getElementById("InsertRecordPassword").value = document.getElementById("InsertRecordUsername").value; document.getElementById("InsertRecordPassword@Confirm").value = document.getElementById("InsertRecordUsername").value; } </script> Just change the ID attribute value based on your field names. Please refer to this guide for referencing Caspio Form Elements: https://forums.caspio.com/topic/4377-js-guide-caspio-form-elements/
  14. 1 point
    Andrew

    Make Y Axis title horizontal

    @deemuss It is possible using some additional JS code. Please insert this snippet of code into the footer of a datapage: <script type="text/javascript"> document.addEventListener('DataPageReady', test); function test() { if (typeof Highcharts === 'undefined') { setTimeout(test, 20); return; } var chartObj = Highcharts.charts[0]; if (!chartObj) return setTimeout(test, 20); chartObj.yAxis[0].axisTitle.element.setAttribute("transform", "translate(0) rotate(0 25.66 146.5)") } </script> Do not forget to disable HTML editor of the footer! Let me know if you need any further assistance.
  15. 1 point
    Hello @Subtlety, I think this depends upon what that public forum is trying to achieve. In some cases, Caspio does have a certain feature which you can use but in some, it may require custom codes or in some cases complex ones. Well, for you to better understand Caspio, I think they have their trainings and other stuff that you can utilize. I believe it's here https://www.caspio.com/training. They are conducted during the weekdays and they are free. There are also some features that you may want to check such as Authentication, API Integration, etc. at https://howto.caspio.com. Also, I think it is better if you try to fill out the form of their Professional Services team at https://www.caspio.com/services/professional-services/ I hope this helps you.
  16. 1 point
    DesiLogi

    Bulk Edit Auto-Submit

    Hi, Does anyone know how to put code in the footer of a Bulk Edit form so it auto-submits (so the user doesn't have to click the Update button)? This code: <script type="text/javascript"> if(document.getElementById("caspioform")) { document.getElementById("caspioform").style.display = 'none'; setTimeout('document.forms["caspioform"].submit()',1000); } </script> works only on a regular Update or Submission form. If you use it in Bulk Edit it just keeps refreshing the records over and over. So there must be some specific code for Bulk Edit. As well, if I can get Bulk Edit to auto-submit I'd like to remove he Update button so if anyone has code for that it'd be really great. Thanks!
  17. 1 point
    JolliBeng

    Totals

    Hi @Jess147, You can achieve that workflow using triggered actions. But first, the records that needs to be calculated should be saved on your table. I suggest that you use Formula fields for calculations or directly calculate it under your triggered actions. You may refer to the following links: https://howto.caspio.com/tables-and-views/data-types/formula-fields/ https://howto.caspio.com/tables-and-views/triggered-actions/ -JolliBeng
  18. 1 point
    Barbie

    Hide Search button

    Hi Watusi, You can try to paste this code in your header instead: <style> input[class*="cbSearchButton"]{ display:none !important; } </style> I hope this works for you.
  19. 1 point
    Glitch

    Trigger Sum

    You should add the sum to the inserted Value. Reading the trigger, You are only summing up the CommentHRS. Meaning to say, the inserted one is still excluded, since you are still on the process of inserting the Data. I hope this helps.
  20. 1 point
    I'm actually trying to do the same thing. I'll let you know if I have any luck. Also sticking around here in case a solution pops up *I was told that this is not part of the functionality yet with Tasks. They came out with the Caspio 15.0 update, so it is pretty new... But I guess Tasks can only pull data from Tables and not App Parameters yet. You can put a recommendation into the Caspio Ideabox. I would, but I'm already out of votes to add more ideas.
  21. 1 point
    Update - Issue fixed! I had inserted the code into the footer of "Configure Results Page Fields" but not the "Configure Search Fields" footer. Problem solved and it is now working beautifully.
  22. 1 point
    Alison

    Autosuggest limited to 10 entries

    Hi @IvanV, To make the autocomplete search from the third character, you should add AutoCompleteStartFromCharacter="3" attribute at the end of the <LookUp DataSourseName ... /> tag. Also, you can use AutoCompleteEndAfterCharacter attribute to stop the search for the autocmplete and AutoCompleteStartDelay - to delay the dropdown. Hope it helps.
  23. 1 point
    So you might end up with 9000 records in that table over a year - my main table has 365000 records, so I dont think it will cause a problem for performance. Ok I think you should create a view that links the two tables together using the Job number - then you can create two reports from the one view. The first will show the Orders not completed, by selecting only the fields form the Ordering table and the 2nd will show the Completed orders. Then embed both tables into a details page which passes the Job number as a parameter to both embedded tables.
  24. 1 point
    TsiBiRu

    Client Database Configuration

    Hi @kpcollier, To test if the code is working, I would suggest to look in the URL and see if the parameter contains a value. If it has a value, then it only confirms that there is nothing wrong with your code. We just need to fix this on the receiving part and ensure that we are receiving it using the exact variable name [@val] in this example In regards to your second question, you will simple need to add a new HTML block to and create a new/2nd drop-down <!-- As you can see, I've added '2' in my id below id='2[@field:Listing_ID], this is to diffrentiate it with our first dropdown so that we can target it correct using its repective id. To make it simple, 2 is just a prefix to indicate that it is the second dropdown of the row ex: id of row is 2 first drop-down ID:2 second drop-down ID:22 and ... --> <select id='2[@field:Listing_ID]'> <option value="[@field:Address]">[@field:Address]</option> <option value="[@field:Address_Line_2]">[@field:Address_Line_2]</option> </select> Then we will just need to add some code in our JS to capture the selected value of our second value, and to add it to our query string <button type="button" onclick="myFunction([@field:Listing_ID])">Click me</button> <script> function myFunction(x) { // Getting the value of the first drop-down var e = document.getElementById(x); var strUser = e.options[e.selectedIndex].value; // Getting the value of the second drop-down var f = document.getElementById('2'+x); var endUser = f.options[f.selectedIndex].value; window.location.replace("https://www.google.com?val=" + strUser + "&val2="+endUser ); } </script> I've also added in this response a copy of the DataPage that I've updated, it now contains two drop-down per row/record. And the selected value of this drop-downs is being passed to my test site (google.com). You can download it to your account so that you can review the code, and see how it works if you will be encountering some issue implementing this solution, you can just provide me with an exported copy of your Datapages (Sending & Receiving) so that I can help you to implement this. Kind regards, TsiBiRu CaspioData_2019-Apr-04_2309.zip
  25. 1 point
    Glitch

    Insert Data Into Log File (Table)

    Yes, this would be doable via trigger. As you mentioned, you know how to set the trigger up. It should be something like this right? But you need to pass a value from the inserted to the log file table. How about implementing this to your table? https://howto.caspio.com/authentications-and-connections/authentication/stamp-a-record-with-user-profile-data/ https://howto.caspio.com/tech-tips-and-articles/common-customizations/stamp-the-time-url-or-ip-address-to-new-and-updated-records/ Then you can easily pull up that stamped user ID and pass it via trigger? Does that make sense? Hope this helps
  26. 1 point
    Hi @bbeshlian, If you want to submit data from a single submission form to two separate tables, Triggered Action is what you need. You may refer to these links for more information about Triggered Actions: https://howto.caspio.com/tables-and-views/triggered-actions/ Hope this helps. -kristina
  27. 1 point
    Corpcat

    move submit button inline

    Thank you Alison
  28. 1 point
    It is not yet possible to set a specific time out on a password reset link. I asked Caspio Support regarding this and they said that the 2-hour default window is a system generated feature which means we are not able to adjust the time allocation. They said we can suggest this in their Ideabox .
  29. 1 point
    Just wanted to share how to copy the value from another field using web form/Submission Form. Thank you @DefinitelyNot31337 <script type="text/javascript"> var src = document.querySelector('[id*=InsertRecord]'); var dest = document.querySelector('[id*=InsertRecord]'); src.onchange = function() { dest.value = this.value; } </script>
  30. 1 point
    JolliBeng

    Compute

    Hi Jess147, You can create a Calculated Value for that. You can try the following formula: CASE WHEN [@field:Amount_Paid] = 1 THEN 5 WHEN [@field:Amount_Paid] = 2 THEN 20 WHEN [@field:Amount_Paid] = 3 THEN 35 END You just need to change the field name. -JolliBeng
  31. 1 point
    MayMusic

    Number to Hexadecimal converter

    If you are on a submission DataPage and you have an input for the number with the field name: "NumberValue" and another field where you want to store "Hex" you can use the code below in the footer <div id=d1></div> <script language='JavaScript' type='text/JavaScript'> <!-- document.getElementsByName("Submit")[0].onmouseover = function (){ var n1=document.getElementById("InsertRecordNumberValue").value; if(isNaN(n1)){ document.getElementById("d1").innerHTML=document.getElementById('t1').value + " is not a number "; }else{ n1=parseInt(n1); var h = document.getElementById("InsertRecordHex").value =n1.toString(16); // Change the toString(16) to toString(8) or toString(2) get Octal and binary conversion } } //--> </script> on Details or update page as long as the form element is not "display only" and "cascading" you can change "InsertRecord" to "EditRecord" in the code above.
  32. 1 point
    AlexH

    Automated Email on date

    Hello all, I have been playing around with Caspio and really like what I see! I have several potential projects in mind, but I want to ask about two features I haven't been able to find/figure out. 1) The database will contain information including fields for email address and an expiration date. I would like to automate a process to send an automated email to the email address specified in the record at the 30 day mark prior to the expiration date in the record. The email will contain a link on how to submit a new record. 2) Can I send an automated email with a link to someone to update a particular record, and only that record? (not as important, but would be nice) 3) Can I create a custom html template to display a particular record? On the backend, I would like to export one particular record to a specific format so I can save it as a PDF and print it. If you can point me in the right direction on any of these, it would be great! Thanks!!
  33. 1 point
    kristina

    Currency field

    Hi @dmyoungsal, I understand that you want to display the field AmtPaid as currency on your DataPage. You can go to your Report DataPage > Configure Results Page Fields. You can customize your field based on your desired display. However, you cannot change it on your submission form. Regards, kristina
  34. 1 point
    I suggest you create a field first for the Age so you won't have to do the Javasctipt anymore. When submitting a new Data for a new User per se, you can create a Calculated Value for the Age (that will be saved to the table) The formula would go like this: DateDiff(year, [@field:DOB], GetUTCDate()) And from your search form, you can create the criteria depending on the logic you want. All of your requirements perfectly fits with Caspio. This can be done simply without any code. Let me know if this works for you =)
  35. 1 point
    Hi @telly, Yes. In order to achieve that you may use the 'Replace' feature. Below is the step by step: 1. Make sure select the new version of the DataPage: http://prntscr.com/lwnhkn 2. Click 'More' then select option 'Replace': http://prntscr.com/lwnhyj 3. Then select the DataPage that you want to replace with the new one: http://prntscr.com/lwnicg 4. After that refresh your page for you able to see the result. Regards, Sunako
  36. 1 point
    GoCubbies

    Geo Coordinates From Phone

    Here is an updated version of this code to work with the ajax feature on DataPages: <script type="text/javascript"> document.addEventListener('DataPageReady', function (event) { function initGeolocation() { if(navigator.geolocation) { // Call getCurrentPosition with success navigator.geolocation.getCurrentPosition(success); } else { alert("Sorry, your browser does not support geolocation services."); } } function success(position) { //Change to EditRecord for an update form //Current_Long and Current_Lat should change to reference correct field names document.getElementById("InsertRecordLong").value = position.coords.longitude; document.getElementById("InsertRecordLat").value = position.coords.latitude; } initGeolocation(); }); </script>
  37. 1 point
    Hi @bbeshlian , Here is a snippet of JavaScript and JQuery code to hide columns if they are empty: <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script> document.addEventListener('DataPageReady', function(e) { let $table = $('.cbResultSetTable:first'); let tbody = $table[0].tBodies[0]; let colsLen = tbody.rows[0].cells.length, rowsLen = tbody.rows.length; let hideNode = function(node) { if (node) node.style.display = "none"; }; for (var j = 0; j < colsLen; ++j) { let counter = 0; for (var i = 1; i < rowsLen; ++i) { if (tbody.rows[i].cells[j].textContent.trim() == '') ++counter; } if (counter == (rowsLen - 1)) { for (var i = 1; i < rowsLen; ++i) { hideNode(tbody.rows[i].cells[j]); } hideNode(tbody.rows[0].cells[j]); } } }); </script> You should put the code above into the Footer element on the Search and Report Wizard - Configure Results Page Fields.
  38. 1 point
    Hi @jonaslovescaspio, I had the same issue as yours from my past projects. Make sure to enable one of the Edit Records from the Results Page Editing Options of that Datapage. And then, go to the Configure Results Page field of the same DataPage and select the element that you want to become editable. There should be an additional tab named Editing. Finally, from the Grid and Inline Edit Options, mark the Allow field to be editable as checked. I hope this one helps.
  39. 1 point
    AnchovyXL

    Database Reindexing

    Hi, I've contacted support about this and they told me that it is not yet possible in Caspio. However, they gave me this link on how to optimize the performance of you application: https://howto.caspio.com/datapages/best-practices-in-creating-caspio-applications/ I hope this helps. Thanks.
  40. 1 point
    You can duplicate the field then hide the extra dropdown by using rules (https://howto.caspio.com/datapages/forms/conditional-forms/). It will look like this: If role is not admin then hide admin dropdown; if the role is admin then show the admin dropdown and hide the other dropdowns. Hope it helps. Thanks.
  41. 1 point
    Hi kpcollier, Looking at my source code, Uncaught TypeError: Cannot read property 'addEventListener" of null is probably caused by a wrong table field name. Do note that it is case-sensitive. fieldName "Job" is different from "job" so you might want to check that . Next, I didn't expect that you'd be using a Dropdown. It wouldn't work on it as I designed the code to work on text fields. Below is the updated code for cross-compatibility. (footer) <script> var fieldName = "value"; // The name of your table field. var paramName = "myParam"; // The name of your parameter /* No modifications necesarry beyond this line */ var inputField = document.querySelector('[action*="[@cbAppKey]"] #InsertRecord' + fieldName); var linkToChild = document.querySelector('[action*="[@cbAppKey]"] #linkToChild'); var baseUrl = linkToChild.href; //do not touch var moddedUrl = baseUrl; //do not touch function updateLink() { moddedUrl = `${baseUrl}?${paramName}=${this.value}` } ['change', 'keydown','keyup'].forEach( function(e) { inputField.addEventListener(e, updateLink); }); inputField.dispatchEvent(new Event('change')); linkToChild.onclick = function() { window.open(moddedUrl, '', 'resizable=no,status=no,location=no,toolbar=no,menubar=no,fullscreen=no,scrollbars=no,dependent=no'); return false; } </script> Last point is just a note, Caspio does modifies the link in the HTML Block, especially if the Rich-text editor is enabled. It's better if the id attribute is just hardtyped. If it still doesn't work, just import this App to your bridge and use it as your template. a5748_passing_internal_parameter_to_popup_1_0_2018-Nov-28_1825.zip Good luck. Regards, DN31337
  42. 1 point
    Vitalikssssss

    Trouble creating Join

    Hi @dmyoungsal, I think you will be able to resolve this case by creating a one-to-many relationship. https://www.youtube.com/watch?v=IstAk982ntA You can create a self-join View if your table have a one-to-many relationship. https://howto.caspio.com/tables-and-views/what-are-views/self-join-views/ Hope this helps. Regards, vitalikssssss
  43. 1 point
    I'm so excited. I found a way to make it work even if AJAX Loading is enabled. Luckily, I came across Caspio 13 Impacted Areas and kudos to good guy Caspio making this AJAX Implementation customizable. previous post TL:DR? Follow this instead. To make this work: 1.) Gey an API key here. Enable access to your domains (Website, Caspio URL and Integration URL) (You can see the last two in your Caspio Bridge > Account > Account Settings). 2.) Create/Edit your Submission Form DataPage 3.) Make sure 'Disable AJAX loading' remains UNCHECKED in the DataPage Data Source Section. (If you want otherwise, refer to my previous post instead. This is not cross-compatible as of the moment). 4.) In the Configure Fields section, Add a Header and Footer. 4.1) Select your header, disable the HTML Editor, paste the code block below, replace y0uR_4P1_k3y_H3r3 with your API Key. <script type="text/javascript" src="https://lib.caspio.com/pub/jquery/jquery.js"></script> <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=y0uR_4P1_k3y_H3r3"></script> <div id="cbwrapper"> 4.2) Select your footer, disable the HTML Editor, paste the code block below, edit the variables to correspond to your table fields. </div> <span id="error_message"> </span> <script type='text/javascript'> var lat_id = 'InsertRecordlat'; var lng_id = 'InsertRecordlng'; var address_id = 'InsertRecordAddress'; var city_id = 'InsertRecordCity'; var state_id = 'InsertRecordState'; var zip_id = 'InsertRecordZip'; var wrapper_id = 'cbwrapper'; var msg1 = 'Please input a valid address'; if(typeof jQuery != 'undefined'){ var cb_geocoder = cb_geocoder = new google.maps.Geocoder(); document.addEventListener('BeforeFormSubmit', function (event) { event.preventDefault(); var add = $('#'+address_id).val(); var city = $('#'+city_id).val(); var state = $('#'+state_id).val(); var zip = $('#'+zip_id).val(); if(!add || !city || !state || !zip){ alert(msg1); }else{ var full = add +','+city+','+state+' '+zip; cb_geocoder.geocode({address: full}, cbCallBack); } }); }else{ document.getElementById("error_message").innerHTML = "This Datapage require Standard Caspio Deployment for full functionality." ; } function cbCallBack(locResult){ if(locResult != "" && locResult.length>0){ var lat1 = locResult[0].geometry.location.lat(); var lng1 = locResult[0].geometry.location.lng(); lat1 = Number(lat1); lng1 = Number(lng1); $('#'+lat_id).val(lat1); $('#'+lng_id).val(lng1); $('#'+wrapper_id+' form').submit(); }else{ alert(msg1); } } </script> 5.) After saving this, you should be able to make this work. Basic Troubleshooting: > Check your Console by doing a Right-Click > Inspect in your browser. NoApiKeys: You forgot to add your key in the script tag. Google documentation here ReferrerNotAllowed: Check if the domain of your webpage is listed in your Maps API Console (Maps JavaScript API > Credentials > (Key) > Details) There's a bunch of other warnings/errors but I think the first two are the most common and critical. > Feel free to reply to this thread if you encounter problems. Note: This is not a full-fledged fix. I know I skipped adding the WebForm AppKey. Let's just wait for the official Caspio documentation updates. Regards, DN31337
  44. 1 point
    MayMusic

    hello everyone :))

    If you add an HTMLBlock and select the file field from picker and URL as the format you can get the URL to the file which includes the file ID. But this URL cannot be used on a browser to get access to the file due to security purposes. Only on the browser where you the report page, or details page which you have this file field on.
  45. 1 point
    Thanks douvega. I suspected it might come down to using API calls. However, while I understand the Caspio codes and explanations as presented, I just can't get my head around actually putting the explanations together to make a basic API call. If only Caspio had a step-by-step example of the simple operations required to have a GET View Rows up and running (a video would be good). This is such a big and obvious gap in Caspio's explanations that I can't help suspect it's purposely done! Do you know of any such help anywhere? I appreciate the 3rd party recommendation. Perhaps for later, as I'm on a bit of a shoestring budget at the moment. Thanks
  46. 1 point
    Got an answer to my question (Thanks so much Francis!) I got confirmation that the "Social Login Field" is not the same as the account name or the email address. For example, the Google social login field is a text string that resembles the following: "Google:123456789012345678901" Where it's the word "Google:" followed by a 21-digit number that uniquely identifies the Google account. There is a specific set of steps necessary to obtain that information which is not yet documented on the Caspio Support site. As soon as I have a chance I will append the instructions here in case anyone else ever needs to do this as well. However, the unfortunate problem is that this doesn't actually allow the desired results to be accomplished (specifcially: limiting access to a DataPage to specific Google users only by using "ID Service only"). This is because the method that is required to obtain the Google social login field is initiated by the google user, so it can't directly be used to create a list of allowed users because this causes a catch-22 situation where the Caspio admin/developer can't know the ID Service social login field without allowing the new user to login first, and once they do so, they are automatically added to the authentication data source. Therefore you basically need to allow access to all google users in order to get their unique social id which would be used to limit their access. Classic chicken & the egg dilemma. But I have an idea for how to avoid that conundrum and am working on implementing it now. Hopefully it will work...
  47. 1 point
    bahar_vm

    Tracking of Stats Possible?

    Hi Steve, Caspio does not provide stats reports, but third party tools can be integrated and used to track activity. You can use for example Omniture or other third party tools to track your analytics. Best, Bahar M.
  48. 1 point
    Hi Simon! Yes, Caspio is very exciting. Did you see the "ready-made app" for job posting websites? Everything you stated you want is already in there like Prego! Let me know if you still need help. setupyoursite@yahoo.com /RA
  49. 0 points
    Does anyone know how I can send 'Yes' through a query string value? I have an anchor tag that I am using as a button to another datapage. I am trying to send 'Yes' as a parameter to check the box on the landing datapage. EDIT* Live chat and I had a problem with one of the logic sections of a datapage that is included in this workflow. That is why we couldn't figure this out. If you want to send 'Yes' to a field through a query string, you need to use 'Y'.
  50. 0 points
    sabuilderguide

    Tracking of Stats Possible?

    Hi! I just integrated caspio into our site and was wondering if there are any stat tools within caspio to track visitor/user activity? (database hits, search numbers, etc) Thanks, and we LOVE the product!! Steve
×
×
  • Create New...