Jump to content

kpcollier

Caspio Rockstar
  • Content Count

    392
  • Joined

  • Last visited

  • Days Won

    16

Reputation Activity

  1. Thanks
    kpcollier reacted to DefinitelyNot31337 in List Report Styling   
    Hello @kpcollier,
     
    Can you try this one?
    <style> [class*=cbResultSetPanelDataContainer] { line-height: 1.5em; } </style>  
    Hope this helps.
     
    Cheers!
    DN31337
  2. Like
    kpcollier reacted to SunakoChan in List Report Styling   
    Hi @kpcollier,
    Could you provide us the Deployed DataPage URL, so that we can test it?

    Could you try this CSS on your DataPage Header:

    <style>
    .cbFormLabelCell
    {
        padding: 9px 14px 0px 14px !Important; 
    }
    .cbFormDataCellNumberDate {
        padding: 7px 14px 7px 14px !Important;

    </style>

    I hope this helps.
  3. Like
    kpcollier reacted to hctr1 in Auto Submit Dropdown   
    @TsiBiRu, @kpcollier & @MayMusic,
    It works perfectly.
    Thank you for the assistance.
  4. Thanks
    kpcollier reacted to ray in Login Redirect on Role   
    Answering my own question; when referring to the authfield in the javascript I was using the name of the field in the Users table. I should use the name of the field in the view that is based on the Users table.
  5. Thanks
    kpcollier reacted to Andrii in Creating PDF/Page to Print that does not save to table   
    Hello!

    You can implement such a workflow using Triggers and Tasks.
    The idea is that you can insert multiple rows within the details table and use this table as the source to make a report with multiple lines. 
    The next step is to set up the Task that will delete all information from the Details table so you will not keep all details within this table. You can set up Task to run each day-week-month depends on your needs. 

    Please find the application attached. I have created the app with a similar workflow.
    Let me know if you have any further questions.
     
    Muliple_Lines_Report_1_0_2019-Mar-04_0937.zip
  6. Thanks
    kpcollier reacted to MayMusic in Change background color after expired   
    Since in pivot you cannot use JS I do no think we can customize the color of the data
  7. Thanks
    kpcollier reacted to TsiBiRu in Issue and Expiration Dates for Many Fields   
    Hi @kpcollier,
    In my opinion, I don't think you need to make your table to be more complex than it has to be,  I think your coworker just want to add multiple certificates to one employee at one sitting.
    What I did to achieve this without using custom coding and ensuring that the user experience will not be sacrificed is, I created a submission form to populate the certificate where the user can add a training certificate to one employee. Then  I've created a report DataPage that will show all the existing Certificate of the employee that the last certificate created belongs to, then I've enabled this to be edited or deleted. So that the user can easily delete or modify the records as he/she wants.

    What I did is I deployed the submission  DataPage on one webpage, then I've set it to redirect to a second webpage where the same submission DataPage is deployed to allow the user to add more records. And on this webpage, I've also deployed the report DataPage that will display all the existing certificate of the employee that the last certificate create belongs to.

    So that you can see how it works, here is the link where you can try, please note that I will be removing this link after 1 week.

    I've also attached the exported copy  of the DataPages that I've worked with so that you can see how I've implemented this workflow

    I hope this helps.

    Regards,
    TsiBiRu
    CaspioData_2019-Feb-26_2236.zip
  8. Like
    kpcollier got a reaction from Glitch in If else for length of time based on start date   
    @Vanellope Maybe you can create a virtual field that receives the calculation as a parameter and use that in the Rules section of the DataPage wizard? Sorry I am not at home so I can't test on my end.
  9. Thanks
    kpcollier got a reaction from DefinitelyNot31337 in Change Color of Opened Tab   
    @DefinitelyNot31337,
    Thanks! I greatly appreciate it. This workflow is working. You're a hero.
  10. Thanks
    kpcollier reacted to DefinitelyNot31337 in Change Color of Opened Tab   
    Hello @kpcollier,
     
    Try my modified solution below:
    <style> .ui-resizable-helper { border: 1px dotted gray; } ul#menu .activeMenu { background: red } ul#menu { width: 100%; height: 43px; background: #007c62; font-size: 0.8em; font-family: "Arial", sans-serif; font-weight: bold; list-style-type: none; margin: 0; padding: 0; } ul#menu li { display: block; float: left; margin: 0 0 0 5px; padding: 8px 15px 0; cursor:pointer;} ul#menu li a {color: #fff; text-decoration: none; display: block; float: left; line-height: 200%; } ul#menu li a:hover { color: #333; } .content{display:block; width:400px; height:400px; padding:30px; border:2px solid gray; overflow:hidden; position:relative;} .ChannelView{ width:100%; height:100%; margin-bottom:100%;} </style> <script> function getElementByClass(classer) { var allHTMLTags=document.getElementsByTagName("*"); var array = []; for (i=0; i<allHTMLTags.length; i++) { if (allHTMLTags[i].className==classer) { array.push(allHTMLTags[i]); }} return array;} function channel(n){          var links_1337 = document.querySelectorAll("ul#menu li");     links_1337.forEach(function(elem, idx) {         console.log(n, idx)         if (idx == n)             elem.className = "activeMenu";         else             elem.className = "";     });                var frames = getElementByClass("ChannelView"); var length = frames.length; for(var i = 0; i < length; i++) { if(frames[i].id == ("viewer"+ n)) { frames[i].style.display = "inline"; }else{ frames[i].style.display = "none";}} } </script> <div style="display:block; text-align:left;"> <div style="display:block;"> <ul id="menu"> <li><a onclick="channel(0)">Tab 0</a></li> <li><a onclick="channel(1)">Tab 1</a></li> <li><a onclick="channel(2)">Tab 2</a></li> </ul> </div> <div class="content"> <iframe frameborder=0 id="viewer0" class="ChannelView"  src="URL of Tab 0" style="display:inline"></iframe> <iframe  frameborder=0 id="viewer1" class="ChannelView" src="URL of Tab 1"></iframe> <iframe  frameborder=0 id="viewer2" class="ChannelView" src="URL of Tab 2"></iframe> </div> </div>  
    The few lines I have modified are as follows:
    1.) function channel(n)
    channel = function channel(n){          var links_1337 = document.querySelectorAll("ul#menu li");     links_1337.forEach(function(elem, idx) {         console.log(n, idx)         if (idx == n)             elem.className = "activeMenu";         else             elem.className = "";     });                var frames = getElementByClass("ChannelView"); var length = frames.length; for(var i = 0; i < length; i++) { if(frames[i].id == ("viewer"+ n)) { frames[i].style.display = "inline"; }else{ frames[i].style.display = "none";}} }  
    2.) The styling for the active tab (CSS).
    ul#menu .activeMenu { background: red } Note: if you wish to target the link, use the selector [ ul#menu .activeMenu a ] instead (without braces).
     
    I hope this information helps.
     
    This is not fully tested, but hopefully it works
     
    Cheers!
    -DN31337
  11. Thanks
    kpcollier reacted to TsiBiRu in Formula To Count Current Inventory   
    Hi @kpcollier,
    You can try the code below.
    <script> // This code should set the value of your 'EditRecordOrdering_CompletedOrders_Qty_Sent' field to be blank document.getElementById("EditRecordOrdering_CompletedOrders_Qty_Sent").value = " "; </script> If the code above did not work as expected you can try to use the code below.
    <script type="text/javascript"> document.addEventListener('DataPageReady', function (event) { // Just added this event listener, that will execute once the DataPage is loaded document.getElementById("EditRecordOrdering_CompletedOrders_Qty_Sent").value = " "; }); </script> I hope this helps.
    Regards,
    TsiBiRu
  12. Like
    kpcollier got a reaction from ManokNaPula in Distinct values from a view   
    @dasigrist
    Go to the datapage that shows the report. In the DataPage wizard, check the "Distinct Options" box. Not 100% sure if it will work, as I cannot replicate the problem at the moment, but give it a try and let me know.
  13. Haha
    kpcollier got a reaction from DefinitelyNot31337 in Login Redirect for Report DataPages?   
    Thanks, @DefinitelyNot31337. You know I'm going for the slightly unrelated, neat trick. 
    Will try this out over the weekend.
    Happy Holidays to you, too!
  14. Like
    kpcollier got a reaction from taylorswiftlover in Different login html page   
    To add on top of this, you can check out this article as well. If you want specific users or groups to be taken to specific pages, you can do so with Login Redirections. This article shows you how to set up a stand-alone log in page as well as the back end work needed to make the redirections work. There is a video on this subject as well that is very thorough and easy to follow. 
    Thanks,
    KPC
  15. Thanks
    kpcollier got a reaction from Harbinger in What is the best browser to use for Caspio?   
    Have you tried clearing cache/cookies? Try that and see if it still persists. The old version of a datapage should not even be saved unless you have the right Caspio Plan. 
    I have been using Google Chrome with Caspio for about a year, but have also tested my work on Firefox, IE, and Edge. They are all compatible on my end. 
    Make sure you have the updated datapage deployed and try viewing it through the deploy URL instead of the Preview button.
  16. Thanks
    kpcollier reacted to Vitalikssssss in Checkbox/Radio Buttons for Search Field Blank/Not Blank   
    Hi @kpcollier,
    I think you can create a Formula field in your table with a case expression to check if the field "Shipping Confirmation" is empty or not.
    Here is an example of Formula expression:
    CASE WHEN Len([@field:Shipping_Date])>0 THEN 'YES' ELSE 'NO' END Next, you should use this field in your search criteria and assign "Checkbox" form element. 
    You should use the following settings:

     
    Hope this helps.
    Regards,
    vitalikssssss
  17. Thanks
    kpcollier got a reaction from taylorswiftlover in Help!! I'm catching an error when I'm trying to enable a trigger. It says: "Cannot perform the requested action at this time. Error ID: 2076   
    Try going back to edit the trigger and hit Validate. If it says it works, I would duplicate the Trigger and delete the original. Otherwise, I believe hitting up Caspio Support and/or starting a ticket would be the best case for Error Codes that you cannot find information on.
  18. Thanks
    kpcollier reacted to DefinitelyNot31337 in Passing Parameters to Popup before submit   
    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
  19. Like
    kpcollier reacted to DefinitelyNot31337 in Passing Internal Parameter To Popup   
    Hi @kpcollier,
     
    I don't know if I understand this thread correctly but based on the title and what I assume, I think you were trying to pass the current value of a parent field to a pop-up via external parameters. Is that correct? If not, I'd suggest to just open a new thread and just notify me to avoid confusion.
     
    If my assumption is what you want to achieve in a Submission Form DataPage, you may do the following:
    1.) Add an HTML Block, Create the link that you wish using the WYSIWYG editor. Then click on source.

     
    2.) Add an ID attribute to your link. (Copy-paste: id="linkToChild" )

     
    3. Add a Footer, disable HTML Editor, and Paste this code
    <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}` } ['keydown','keyup'].forEach( function(e) { inputField.addEventListener(e, updateLink); }); 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> Note: When the link is hovered, it will show the value of the href attribute but if the it is clicked, the popup will still contain the parameter.
     
    Hope this helps.
     
    Regards,
    DN31337
  20. Like
    kpcollier reacted to Meekeee in Button Text Disappearing   
    Hi @kpcollier,
    I have tried your code and it works fine on my end. Here's the screenshot: 

     Also, here's the code I used in HTML Block and Footer.
     
    HTML Block:
    <button type="button" class="button-two"><span>Bulk</span></button>
    <style>
    button{
      color:#fff;
      text-align: center;
      padding: 5px;
    }
    .button-two{
      text-align: center;
      cursor: pointer;
      font-size:14px;
      margin: 5px 5px 5px 5px;
    }
    /*Button Two*/
    .button-two {
      border-radius: 4px;
      background-color:#d35400;
      border: none;
      padding: 7px 7px 7px 7px;
      transition: all 0.5s;
    }

    .button-two span {
      cursor: pointer;
      display: inline-block;
      position: relative;
      transition: 0.5s;
    }
    .button-two span:after {
      content: '»';
      position: absolute;
      opacity: 0;
      top: 0;
      right: -10px;
      transition: 0.5s;
    }
    .button-two:hover span {
      padding-right: 11px;
    }
    .button-two:hover span:after {
      opacity: 1;
      right: 0;
    }
    </style>


    FOOTER:
     
    <a href="https://c3eku680.caspio.com/dp/e750500050cb43ba14e544b9ba73" class="action-button shadow animate blue">Add New Job</a>
      
      <a href="https://c3eku680.caspio.com/dp/e750500079a88720edad4e82b056" class="action-button shadow animate blue">Search Jobs</a>
      
      <a href="https://c3eku680.caspio.com/dp/e7505000e5da8380328e43bc9dcd" class="action-button shadow animate blue">Shipping Calender</a>
    <style>
    .animate
    {
        transition: all 0.1s;
        -webkit-transition: all 0.1s;
    }
    .action-button
    {
        position: relative;
        padding: 2px 5px;
      margin: 0px 5px 10px 0px;
      float: left;
        border-radius: 3px;
        font-family: 'Pacifico', cursive;
        font-size: 14px;
        color: #FFF;
        text-decoration: none;
    }
    .blue
    {
        background-color: #3498DB;
        border-bottom: 3px solid #2980B9;
        text-shadow: 0px -2px #2980B9;
    }
    .red
    {
        background-color: #E74C3C;
        border-bottom: 5px solid #BD3E31;
        text-shadow: 0px -2px #BD3E31;
    }
    .green
    {
        background-color: #82BF56;
        border-bottom: 5px solid #669644;
        text-shadow: 0px -2px #669644;
    }
    .yellow
    {
        background-color: #F2CF66;
        border-bottom: 5px solid #D1B358;
        text-shadow: 0px -2px #D1B358;
    }
    .action-button:active
    {
        transform: translate(0px,5px);
      -webkit-transform: translate(0px,5px);
        border-bottom: 1px solid;
    }
    </style>
     
    I hope this helps!
  21. Like
    kpcollier got a reaction from LunaLovegood in Yes/No field   
    Hello @wvantongeren To start, I am not sure what Ja and Nee mean, but I assume it is Yes/No respectively.
    Edit your Tabular Report DataPage. 
    On the Configure Results Page Field page, go to the "Acteif" field. Under Field Options in the Standard tab, Edit the Formatting.
    Click Custom. Keep Format Type as Yes/No. Set Yes/No Display to custom. For yes, type "Go to the project".  For no, type "Nee" (Unless I have Ja and Nee switched up).
    Thanks,
    KPC
  22. Thanks
    kpcollier reacted to JolliBeng in Can the View Details button be moved to the left?   
    Hi kpcollier,
    I just discovered that it is possible to change the "View Details" text. You can modify it under Localization:

     
    -JolliBeng
  23. Thanks
    kpcollier reacted to DefinitelyNot31337 in AutoComplete based on Role   
    Hello,
     
    (A different approach)
    If I understand you correctly, it's not actually hard to implement as it seems. I, myself, wanted to implement this before.
     
    I am assuming that you are using an Authentication in your DataPage. If so:
     
    First, what we need to do is to somehow add to a Default_Task field to the DataSource of your Authentication (much easier if it's a View, but you can also do with a field with manually input value. Hopefully this makes sense. I am attaching an image for you to better visualize my point).

     
    Once it's in your authentication field, you should be able to use that as an OnLoad value on pretty much all kinds of DataPages

     
    Hope this helps you, kpcollier
     
    Regards,
    DN311337
  24. Like
    kpcollier reacted to Vitalikssssss in Top and bottom scrollbar on report data page?   
    Hi @roattw,
    You can implement the solution from this topic .
    1. Disable AJAX loading of Datapage;
    2. Place the following code into Datapage Header:
    <style> .wrapper1, .wrapper2 { width: 100%; overflow-x: scroll; overflow-y: hidden; } .wrapper1 { height: 20px; } .wrapper2 {} .div1 { height: 20px; } .div2 { overflow: none; } </style> <script src="https://code.jquery.com/jquery-1.9.1.js"></script> <div class="wrapper1"> <div class="div1"></div> </div> <div class="wrapper2"> <div class="div2"> 3. Place the following code in Datapage Footer:
    </div> </div> <script> $(function () { $('.wrapper1').on('scroll', function (e) { $('.wrapper2').scrollLeft($('.wrapper1').scrollLeft()); }); $('.wrapper2').on('scroll', function (e) { $('.wrapper1').scrollLeft($('.wrapper2').scrollLeft()); }); }); $(window).on('load', function (e) { $('.div1').width($('table').width()); $('.div2').width($('table').width()); }); </script> Make sure that you disable HTML editor otherwise it breaks the code in the Header.
    Hope this helps.
    Regards,
    vitalikssssss
×
×
  • Create New...