Declined
Last Updated: 27 May 2021 08:53 by ADMIN
Created by: Mauro
Comments: 1
Category: Scheduler
Type: Feature Request
1
In a RadScheduler with a custom provider (inheriting from SchedulerProviderBase), there is no way to get "expanded" appointments (i.e. masters plus occurrences minus exceptions). 

I devised a solution (as suggested in http://www.telerik.com/forums/scheduler-exporting-a-range-of-appointments), using the Occurrences property of RecurrenceRule:

        public IEnumerable<Appointment> GetExpandedAppointments(RadScheduler owner, DateTime start, DateTime end)
        {
            var result = new List<Appointment>();

            foreach (Appointment a in this.GetAppointments(owner))
            {
                // see http://www.telerik.com/forums/scheduler-exporting-a-range-of-appointments
                if (a.RecurrenceState == RecurrenceState.Master)
                {
                    RecurrenceRule parsedRule;
                    RecurrenceRule.TryParse(a.RecurrenceRule, out parsedRule);
                    parsedRule.SetEffectiveRange(start, end);

                    int nc = 0;
                    foreach (DateTime occurrence in parsedRule.Occurrences)
                    {
                        Appointment app = a.Clone();
                        app.ID = a.ID + "_" + ++nc;
                        app.Start = occurrence;
                        app.End = occurrence.Add(a.Duration);
                        app.RecurrenceRule = null;
                        app.RecurrenceParentID = a.ID;
                        app.RecurrenceState = RecurrenceState.Occurrence;
                        result.Add(app);
                    }
                }
                else if (a.RecurrenceState != RecurrenceState.Occurrence)
                {
                    result.Add(a);
                }
            }

            return result;
        }
    }

I think this functionality can be part of SchedulerProviderBase, there is no custom logic.

Thanks

Regards

Mauro
Unplanned
Last Updated: 06 Mar 2017 12:24 by ADMIN
Unplanned
Last Updated: 11 Jan 2018 14:06 by IT Manager
Unplanned
Last Updated: 07 Jan 2021 15:27 by ADMIN
Created by: Andreas
Comments: 0
Category: Scheduler
Type: Feature Request
1
When working with All-day appointments, it would be really nice to be able to resize them in the week view.

In some cases when only working with All-day appointments, we were able to hide the time part of the Scheduler control entirely, but in this case the week view is almost pointless since our end users want to resize appointments a lot!
Unplanned
Last Updated: 27 Mar 2018 14:50 by ADMIN
ADMIN
Created by: Peter Milchev
Comments: 0
Category: Scheduler
Type: Bug Report
1
https://www.screencast.com/t/KlQtYDOxl

Workaround: 

var $ = $ || $telerik.$;
var $T = Telerik.Web.UI;
var $TS = $T.Scheduler,
$TSR = $TS.Rendering,
$DateTime = $TS.DateTime;
var $SB = Telerik.Web.StringBuilder,
timePerMinute = 60000,
timePerHour = timePerMinute * 60,
timePerDay = timePerHour * 24,
daysInWeek = 7,
roundedCornersHeight,
anchorDateFormat = "yyyy-MM-dd";

$TSVM = Telerik.Web.UI.Scheduler.Views.Month;
$TSVM.Model.prototype._createTimeSlot = function (rawIndex, startTime, element) {
    if (startTime.getHours() == 23) {
        startTime = $DateTime.add(startTime, 2 * timePerHour);
    }

    return new $TSVM.TimeSlot(rawIndex, startTime, element);
}

$TSVM.Model.prototype.getTimeSlotFromDomElement = function (domElement) {
    var rawIndex = this._getRawIndexFromDomElement(domElement),
                startTime = this._getTimeFromDomElement(domElement);
    if (startTime.getHours() == 23) {
        startTime = $DateTime.add(startTime, 2 * timePerHour);
    }

    return new $TSVM.TimeSlot(rawIndex, startTime, domElement);
}


Telerik.Web.UI.Scheduler.Rendering.MonthViewRenderer.prototype._updateColumnHeaders = function () {
    var renderer = this,
        dayHeaderDateFormat = this._model.get_dayHeaderDateFormat(),
        firstDayHeaderDateFormat = this._model.get_firstDayHeaderDateFormat(),
        currentMonth = renderer._owner.get_selectedDate().getMonth(),
        visibleRangeStart = renderer._model.get_visibleRangeStart();

    $.each(this._contentTables, function () {
        var dateLabels = $("td div.rsDateWrap div.rsDateBox a", this),
            dayStart = visibleRangeStart,
            weekDayIndex = 0,
            weekStart = new Date(dayStart.getTime());

        dateLabels.each(function () {
            var isFirstVisibleDateOfMonth =
                    $DateTime.subtract(dayStart, visibleRangeStart) == 0 &&
                    dayStart.getMonth() == currentMonth;
            var dateHeaderText;

            if (renderer._owner._renderMode == $T.RenderMode.Mobile) {
                dateHeaderText = dayStart.getDate().toString();
            }
            else if (dayStart.getDate() == 1 || isFirstVisibleDateOfMonth) {
                dateHeaderText = dayStart.localeFormat(firstDayHeaderDateFormat);
            } else {
                dateHeaderText = renderer._getFormattedDateText(dayStart, dayHeaderDateFormat);
            }

            this.href = "#" + dayStart.format(anchorDateFormat);
            this.innerHTML = dateHeaderText;
            this.title = dayStart.localeFormat(Sys.CultureInfo.CurrentCulture.dateTimeFormat.ShortDatePattern);

            var otherMonthCell = currentMonth != dayStart.getMonth(),
                dateWrapElement = this.parentNode.parentNode.parentNode;

            $(dateWrapElement).toggleClass('rsOtherMonth', otherMonthCell);

            if (weekDayIndex == renderer._weekLength - 1) {
                // Move to the next week, skipping invisible days.
                weekStart = $DateTime.add(weekStart, 7 * timePerDay);
                dayStart = new Date(weekStart.getTime());
                weekDayIndex = 0;
            } else {
                dayStart = $DateTime.add(dayStart, timePerDay);
                weekDayIndex++;
            }
            if (dayStart.getHours() == 23) {
                dayStart = $DateTime.add(dayStart, 2 * timePerHour);
            } else if (dayStart.getHours() == 1) {
                dayStart = $DateTime.add(dayStart, -timePerHour);
            }
            if (weekStart.getHours() == 23) {
                weekStart = $DateTime.add(weekStart, 2 * timePerHour);
            } else if (weekStart.getHours() == 1) {
                weekStart = $DateTime.add(dayStart, -timePerHour);
            }
            // Wrappers are cleared here to avoid second
            // traversal of the cells.
            renderer._clearExtraWraps(dateWrapElement);
        });
    });
}
Completed
Last Updated: 15 Oct 2020 18:18 by ADMIN
Hi,
Please suggest me how can we show only working hour in timeline view in rad scheduler and hide non working hour. 

Currently in timeline view all 24 hour time slot is showing , but I want to show only working hour in time slot and hide rest of non working hour for there.

Screen shot for current view and desired view is attached below .
Unplanned
Last Updated: 10 Jul 2019 08:00 by ADMIN
When the server's timezone is set to UTC-2 and timezones with bigger negative offset (e.g.  (UTC-08:00) Pacific Time (US & Canada) and (UTC-07:00) Mountain Time (US & Canada)) the appointments on July 1st at 1:30AM are not rendered.
Completed
Last Updated: 21 May 2020 13:19 by ADMIN
Release R2 2020
Unplanned
Last Updated: 08 May 2020 11:13 by ADMIN

Hi 
I would like an extended feature to the iCal button that you get with RadScheduler which just deliver the one ical file type,
however it is typical on many event sites to offer alternative formats such as "[Google Outlook iCal Yahoo Apple]" because a user might be on an iPhone and so the text format might have the header information changed to make it natral for an iOS user, where as on an Android device making it natral to a google calendar would be a better fit.

It would be useful in the UserAgent was sniffed to offer a selection that is a natral fit of that environment.
An optional cookie could be left behind on that device to inform the control of the users preference so that is the head of the list.

This means that if Zoom or EventBrite used such a control (which they do) it would mean that your UI offers calendar events that connect to you, and so your UI is a little more sticky. 
Sure we can say that the iCal control would do, as many calender's can cope, we could also show the button offering all the major brands and just render exactly the same content then its user error if the appointment not saved.  But because Telerik is a leading UX brand, we don't want to know its an ical file we just want it to be a friction-less perfect fit into the users' calendar - they don't need to think it just gets done.

Thanks.
Doug

RE:
https://pages.jetbrains.com/dotnet-days-2020/web 
https://splashthat.com/ 
https://support.google.com/calendar/thread/3231927?hl=en

Unplanned
Last Updated: 19 Apr 2023 12:17 by Chris
Created by: Chris
Comments: 0
Category: Scheduler
Type: Bug Report
1

We have noticed that when you choose 'Yearly' in the recurrence editor that the text 'Recur every' shows up twice in the editor. If you change it to 'Monthly' or any other type of recurrence, this does not happen, and the text only shows up once.

The issue can be replicated in Binding to Generic List live demo.

Declined
Last Updated: 01 Jul 2015 14:00 by ADMIN
Completed
Last Updated: 14 Apr 2015 12:24 by ADMIN
Declined
Last Updated: 12 Jul 2016 14:49 by ADMIN
Created by: Robin
Comments: 2
Category: Scheduler
Type: Feature Request
0
In http://www.telerik.com/account/support-tickets/view-ticket.aspx?threadid=631805 Plamen indicated a feature request was created to implement CRUD via ODatabinding for the RadScheduler control but I can't find it. Currently it's read-only but we really would like to be able to maintain appointments as well via OData because we already have that API available in our product. This way we don't have to build\maintain a new web service.
Declined
Last Updated: 16 Jun 2021 08:10 by ADMIN
We'd like to control how simultaneous appointments are displayed. It would be nice if the appointments are shown above eachother, as it were layers with transparancy.

If that's not possible than we'd like to control the placing of the appointments. For example the appointments in order of priority from left to right.
Declined
Last Updated: 01 Nov 2013 13:06 by Elena
Created by: Deepa Balasundaram
Comments: 1
Category: Scheduler
Type: Bug Report
0
In firefox, the scheduler adds additional option buttons and checkboxes. 
Declined
Last Updated: 02 Mar 2022 11:37 by ADMIN
Created by: Ben
Comments: 1
Category: Scheduler
Type: Feature Request
0
There is an OnClientTimeSlotClick event that fires if the user clicks in a single time slot.

If the user clicks in one time slot and drags to select multiple time slots before releasing the mouse button no event is fired.

It would be useful if the existing event was fired in this case, or another event was added to fire in this case.
Declined
Last Updated: 25 Feb 2014 11:07 by Sam
When moving from 2.611.45 to the latest 2.717.45 ASP.NET AJAX binaries, we are experiencing a problem with the client-side drag ('move') of appointments.

Repro steps:
* Unpack the attached MVC project (bare-bones...does web-service binding on an XML document). Run the project (just go to the /Home/Index action). You should see the RadScheduler there.
* Create an appointment of AT LEAST 90 MINUTES duration. This should succeed.
* Drag the appointment up/down. I have included a piece of sample JavaScript which prints out the eventArgs.get_targetSlot().get_startTime() value. 

Expected results:
* The logged value coincides with the visual position of the start of the appointment while it is being dragged.

Actual results:
* The logged value is offset by a constant amount compared to what is being shown on the Scheduler during the drag. For example, the appointment will appear to be shown at 12:00 but the value retrieved in script will be 12:30.

This only seems to be reproducible for appointments of 90 minutes or longer. It does not occur with your 2.611.45 binaries.

I noticed that you guys changed your implementation of client-side methods like _startDrag, _raiseMoveEnd, _finishDrag etc in this latest release...it might have something to do with that, but I didn't have time to go debugging your script.

(Note: The attached zip is only a zip of the cleaned project file. The only non-standard MVC4 assemblies are your Telerik assemblies, so you'll just have to fix up the path to those so that the project builds.)
Completed
Last Updated: 13 Mar 2014 10:00 by ADMIN
can be replicated on this on-line demo-http://demos.telerik.com/aspnet-ajax/scheduler/examples/timelineview/defaultcs.aspx