Jump to content

Extended InputfieldDatetime Module Settings doesn't work correctly


Recommended Posts

Hi Guys

I needed to add extended functionalities for the InputfieldDatetime Module (module is from processwire version 2.7.3) because of a Request of Customer.
So I duplicated the module and placed it under /site/modules/.

I have added 3 new Settings to the InputfieldDatetime Module.

1. Day Restriction - Restrict different days based on weekdays selection (e.g. saturday, sunday) - WORKING
2027229116_Bildschirmfoto2019-08-28um08_17_42.png.a55079643b9d56068bef2f3774d86497.png

 

2. Time Slots - Define Time slots based on custom Integer Value (max is 60 for 1 hour) - WORKING
1295759755_Bildschirmfoto2019-08-28um08_18_11.png.e15b5eef8988f5904e41d1e705140493.png

 

3. Time Range Rules per Weekday - Define a minTime and MaxTime per Weekday (e.g. Opening Hours of a Restaurant) - NOT WORKING PROPERLY
1076686440_Bildschirmfoto2019-08-28um08_20_06.png.0ab376d984ee82395a9bb653ac94d96c.png

 

The Problem
Time Slots and Day Restriction working fine so far. But the Time Range Rules per Weekday doesn't work right.
What should happen is, that when you click on a date, it should update the minTime and maxTime of the Time Select.
But the change on the select only happens if you select a date 2 times or when you select a date 1 time and then close the datepicker and reopen it again.
The time select doesn't get change when you select a date 1 time and don't close the picker.

Here is the whole extended InputfieldDatetime Module.
The Files that I have changed:

 

Thats the Part of the JS that is not working correctly:

if(datetimerules && datetimerules.length){
        options.onSelect = function(date, inst) {
            var day = $(this).datetimepicker("getDate").getDay();
            day = day.toString();
            var mintime = $(this).attr('data-weekday'+day+'-mintime');
            var maxtime = $(this).attr('data-weekday'+day+'-maxtime');

           
            console.log("weekday: "+day);
            console.log("minTime: "+mintime);
            console.log("maxTime: "+maxtime);

            var optionsAll = $(this).datetimepicker( "option", "all" );
            optionsAll.minTime = mintime;
            optionsAll.maxTime = maxtime;

            $(this).datetimepicker('destroy');

            $(this).datetimepicker(optionsAll);

            $(this).datetimepicker('refresh');

           	//$.datepicker._selectDate($(this).attr("id"),date);

            //$.datepicker._base_getDateDatepicker();


          //  var inst = $.datepicker._getInst($(this));

           // $.datepicker._updateDatepicker(inst);


            /*$(this).datetimepicker('destroy');

            InputfieldDatetimeDatepicker($(this), mintime, maxtime); 

            $(this).datetimepicker('refresh'); */

           // $(this).datetimepicker('option', {minTime: mintime, maxTime: maxtime});
    
        } 
    }

Can you have a look and find out what the Problem is?

InputfieldDatetime.zip

 

Kind Regards
Orkun

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By monollonom
      (once again I was surprised to see a work of mine pop up in the newsletter, this time without even listing the module on PW modules website 😅. Thx @teppo !)
      Github: https://github.com/romaincazier/FieldtypeQRCode
      Modules directory: https://processwire.com/modules/fieldtype-qrcode/
      This is a simple module I made so a client could quickly grab a QR Code of the page's url in the admin.
      There's not much to it for now, but if need be you can output anything using a hook:
      $wire->addHookAfter("FieldtypeQRCode::getQRText", function($event) { $event->return = "Your custom text"; }) You can also output the QR code on your front-end by calling the field:
      echo $page->qr_code_field; The module uses the PHP library QR Code Generator by Kazuhiko Arase. When looking for a way to generate a QR Code in PW I came across @ryan's integration in his TFA module. I'm not very familiar with fieldtype/inputfield module development so I blindly followed @bernhard (great) tutorial and his BaseFieldtypeRuntime. At some point I'll take a deeper look to make a module on my own.
      Some ideas for improvements :
      add the ability to choose what to ouput : page's url / editUrl / file(s) / image(s) / ... allow to output multiple QR codes ?
    • By Chris Bennett
      https://github.com/chrisbennett-Bene/AdminThemeTweaker
      Inspired by @bernhard's excellent work on the new customisable LESS CSS getting rolled into the core soon, I thought I would offer up the module for beta testing, if it is of interest to anyone.

      It takes a different approach to admin styling, basically using the Cascade part of CSS to over-ride default UiKit values.
      Values are stored in ModuleConfig Module creates a separate AdminThemeTweaker Folder at root, so it can link to AdminThemeTweaker.php as CSS AdminThemeTweaker.php reads the module values, constructs the CSS variables then includes the CSS framework Can be switched on and off with a click. Uninstall removes everything, thanks to bernhard's wonderful remove dir & contents function.
      It won't touch your core. It won't care if stuff is upgraded. You won't need to compile anything and you don't need to touch CSS unless you want to.

      It won't do much at all apart from read some values from your module config, work out the right CSS variables to use (auto contrast based on selected backgrounds) and throw it on your screen.
      You can configure a lot of stuff, leave it as it comes (dark and curvy), change two main colors (background and content background) or delve deep to configure custom margins, height of mastheads, and all manner of silly stuff I never use.

      Have been developing it for somewhere around 2 years now. It has been (and will continue to be) constantly tweaked over that time, as I click on something and find something else to do.
      That said, it is pretty solid and has been in constant use as my sole Admin styling option for all of those 2 years.

      If nothing else, it would be great if it can provide any assistance to @bernhard or other contributor's who may be looking to solve some of the quirkier UiKit behavior.
      Has (in my opinion) more robust and predictable handling of hidden Inputfields, data-colwidths and showIf wrappers.
      I am very keen to help out with that stuff in any way I can, though LESS (and any css frameworks/tools basically) are not my go.
      I love CSS variables and banging-rocks-together, no-dependency CSS you can write with notepad.



       

    • By opalepatrick
      I see old posts saying that repeaters are not the way to go in Custom Process Modules. If that is the case, when using forms (as I am trying to do) how would one tackle things like repeat contact fields where there can be multiple requirements for contact details with different parameters? (Like point of contact, director, etc) or even telephone numbers that have different uses?
      Just for background I am creating a process module that allows me to create types of financial applications in the admin area (no need to publish any of this, pure admin) that require a lot of personal or company information.
      Maybe I am thinking about this incorrectly?
    • By HMCB
      I ran across a reference to IftRunner module. The post was 6 years ago. I cant find it in available modules. Has it been pulled?
    • By fruid
      could someone help me find the javascript bug?
      https://codepen.io/bbblgmsp/pen/LYxWJJa
      or here:
      https://foobar.roofaccess.org/carousell/
      I want it to be NOT draggable on desktop but draggable on mobile devices. Also, on mobile, the element that I drag into focus should automatically be active, but on desktop, only when I click it.
      It works fine on desktop, but when you drag on mobile, after the dragged element is active and you click it, it switches back and forth between this and the previous element (assigns the active class to the previous element).
      I already tried to find help elsewhere, since this is not directly PW related but only frontend, but it's hard to find support or a community for uikit. PW seems to be using it quite a lot though…
      Thanks for help
×
×
  • Create New...