Clarifications: Invitation, Sharing/Un-Sharing Calendar

Hi,

Good Morning!

our client would like to have calendar module (similar to Google calendar/outlook) in their application. We found this control in our analysis and is providing the most of required feature of our application. We are very much glad to use this control. We would like to confirm this to the client as this control best suits for our application. Before that, I have few clarifications in the implementation of the following features in Scheduler.

  1. Invitation -
    Send the event as invitation to internal or external users.
    Accept/Decline Invitation
    Tracking Invitation

  2. Sharing/Un-Sharing Calendar control to other users.

Please let us know how should we achieve the above features. It would be of great help if you share any documentation or sample in this regard.

Thanks in advance for your support and co-operation.

Regards,
Kamal

Hi,
scheduler provides the functionality to display/edit/create of events. It has no built-in features for these tasks, so they will require custom implementation

Hi Aliaksandr,

Thanks for update.

Regards,
Kamal

Hi Aliaksandar,

We have one quick question as below:

We would like to show the customized event window based on the type of the calendar or User.
For Example: if user is viewing the Personal calendar then we would like to show Personal event window which is having fields like Title, Description, From, To, Location, Category.

if user is viewing the Office Calendar then we would like to show Office Calendar Event window which is having field like Title, Description, From, To, Location, Dress Code, Fee(if applicable).

Please let us know how should we achieve this. It would be of great help if you share the document or snippet on this.

Regards,
Kamal

Hi,
you can set different configuration of lighbox, depending on the type of calendar, the code may look like next:

[code]public virtual ActionResult Index()
{

       var sched = new DHXScheduler(this);
       .....
       bool isOfficeCalendar = ....;
        _CommonLightbox(sched);
        if (isOfficeCalendar)
        {
            _OfficeLightbox(sched);
        }
        else
        {
            _PersonalLightbox(sched);
        }
        return View(sched);
    }

    public void _CommonLightbox(DHXScheduler scheduler)
    {
        scheduler.Lightbox.Add(new LightboxText("text", "Text") { Height = 25});
        scheduler.Lightbox.Add(new LightboxText("description", "Description") { Height = 120 });
        scheduler.Lightbox.Add(new LightboxTime("auto", "Time"));
        scheduler.Lightbox.Add(new LightboxText("location", "Location") { Height = 25 });
    }

    public void _OfficeLightbox(DHXScheduler scheduler)
    {
        var cat = new LightboxSelect("dress_sode", "Dress Code");
        cat.AddOptions(
            new object[] { 
                new { key=1, label="Business" },
                new { key=2, label="Casual" }
            }
        );
        scheduler.Lightbox.Add(cat);           
        scheduler.Lightbox.Add(new LightboxText("fee", "Fee") { Height = 25});
    }
    public void _PersonalLightbox(DHXScheduler scheduler)
    {
        var cat = new LightboxSelect("category", "Category");
        var categories = new object[] { 
                new { key=1, label="Family" },
                new { key=2, label="Other" }
            };
        cat.AddOptions(categories);
        scheduler.Lightbox.Add(cat);
    }[/code]

new LightboxText("text", "Text") - the first parameter is a control’s name, and, by default it’s a property of the event on which control is mapped(e.g. control from the code above will set value of event.text)
the second parameter is controls title

also note, that default LightboxTime should take ‘auto’ for the first parameter, to be mapped to ‘start_date’ and ‘end_date’ properties

here is related docs scheduler-net.com/docs/lightbox.html

Hi,

Thanks for your suggestion to add custom fileds to LightBox i.e Event window.

After adding these controls, we are not able to view all these control on event window properly and even not able to set scroll bar to the event window. Could you please help us how should we set the height of the Lightbox and scroll bars to Light box as well as alginment and styles of custom fields and LightBox.

Regards,
Kamal

Hello,
there is no native api to set lightbox sizes, they expected to be calculated by scheduler, but you may override this behavior
js:

[code]
//helper
function setLightboxHeight(val) {
scheduler.setLightboxSize = function () {
var d = this._lightbox;
if (!d) return;
d.style.height = val + “px”;

            var con = d.childNodes[1];
            con.style.height = val - 50 + "px";
            con.style.overflow = "auto";
        };
    }[/code]

and usage:

setLightboxHeight(300);

you may put this code after scheduler.Render call

as for styles and aligns - you can’t set style to specific control, but you may override css classes which is applied to lightbox and controls

Hi,

Thanks for your suggestion.

We will try and update you.

Regards,
Kamal

Hi Aliaksandr

Great! We are able set the height and styles of the calendar.

As you know, we tried to customize the lightbox by adding different in-line controls and able to load the data using map property. While doing this, we planned to use this Title field value as Event text on light box as well as on calendar. We are able achive while loading the data on calendar but when event is edited then we are not able to update text on calendar/ligbox. We tried like this in Save method:
actionValues[“text”] = actionValues[“Title”].ToString();
But no luck. Could you please help us how should we achieve this.

Also, will it be possible to add link button to light box like “new LightboxText” or “new LightboxCheckbox”

Regards,
Kamal

Hello,
try to override templates for the appoitments,

scheduler.Templates.event_text = scheduler.Templates.agenda_text = scheduler.Templates.event_bar_text = "{Title}"; this code will make scheduler use ‘Title’ property instead of ‘text’ in all main views

scheduler does not contain such control, but you may extend it, if you need to.
To achieve this, you’ll have to define control on the client-side, as described here
http://docs.dhtmlx.com/doku.php?id=dhtmlxscheduler:custom_details_form#custom_editors
and add it’s server side configuration object, which should be inherited from LightboxField class

Hi,

Thank you very much!

it is working fine.

We will try to customize the controls and update you the status.

Also, we try to limit the active dates of the calendar. When we are searching we got below link
docs.dhtmlx.com/doku.php?id=dhtm … date-scale
We followed this link and we have added the extensions like below in the controller.
sched.Extensions.Add(SchedulerExternsions.Extension.Limit)

But we are not getting the property(i.e.scheduler.config.limit_start) to set the active dates. could you please help us how to solve this.

Regards,
Kamal

Hi,

We are facing alignment issue in light box. As you know, we have added few custom fields and then enabled the time and recurrent fields as shown below.

/To Enable default time
sched.Lightbox.Add(new LightboxMiniCalendar(“auto”, “Time”));

        //To Enable Recurring Option
        var recurring = new LightboxRecurringBlock("Recurring", "Recurring") { Button = "Recurring", MapTo = "rec_type" };
        recurring.Height = 100;
        sched.Lightbox.Add(recurring);

When we run the applation and view the light box, the alignment of checkbox, time and recurring section is not coming properly. We are trying to set height and width througth javascript but no lock. Please find the attached lightbox image for your reference.
Could you please help us how should we solve this.

Thanks in advance for your valuable support.

Regards,
Kamal

Looks like lightbox css conflicts with some other styles on the page.
Without a demo it’s hard to say what exactly causing this issue

btw, for correct work of the controls, you should add RecurringBlock before time picker control(LightboxMiniCalendar)
i.e. required order is

[code]//To Enable Recurring Option
var recurring = new LightboxRecurringBlock(“Recurring”, “Recurring”) { Button = “Recurring”, MapTo = “rec_type” };
recurring.Height = 100;
sched.Lightbox.Add(recurring);

/To Enable default time
sched.Lightbox.Add(new LightboxMiniCalendar(“auto”, “Time”));[/code]

Hi,

Thanks for your suggestion.

We will try to align the control by updating the CSS and update you the status.

Also, we have added full day event field and is working fine in light box. When we create event by selecting full day event then event is saving to database but it is not showing on the calendar. where as we create an event with specific time then event is saving to database and also showing on the calendar.

Another issue is, we try to limit the active dates of the calendar. When we are searching we got below link
docs.dhtmlx.com/doku.php?id=dhtm … date-scale
We followed this link and we have added the extensions like below in the controller.
sched.Extensions.Add(SchedulerExternsions.Extension.Limit). But we are not getting the property(i.e.scheduler.config.limit_start) to set the active dates and tried on Html side to achives this and but no luck.

could you please help us how to solve the above issues.

Regards,
Kamal

Hi,

It would be great helpful for us if you send your suggestions on previous mail.

Regards,
Kamal

try to enable both full_day and multi_day configs

sched.Config.full_day = true; sched.Config.multi_day = true;

currently this extension does not have server-side api, so you have to use client side

scheduler.AfterInit = new List<string>() { "scheduler.config.limit_start = new Date(2012, 5,1);" };