{{!
    This file is part of Moodle - http://moodle.org/

    Moodle is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    Moodle is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
}}
{{!
    @template core_calendar/minicalendar_day_link

    Displays link to calendar day in mini calendar, with hover tooltip.

    Example context (json):
    {
        "day": "Today",
        "url": "http://example.com/",
        "title": "Monday 2nd January",
        "content": "<img class='icon smallicon' src='../../../pix/i/siteevent.svg'>Test site event"
    }
}}
<a {{!
    }} href="{{$url}}{{url}}{{/url}}"{{!
    }} id="calendar-day-popover-link-{{courseid}}-{{year}}-{{yday}}-{{uniqid}}"{{!
    }} data-container="body"{{!
    }} data-toggle="popover"{{!
    }} data-html="true"{{!
    }} data-trigger="hover"{{!
    }} data-placement="top"{{!
    }} data-title="{{$title}}{{title}}{{/title}}"{{!
    }} data-alternate="{{$nocontent}}{{/nocontent}}"{{!
}}>{{$day}}{{day}}{{/day}}</a>
<div class="hidden">
    {{$content}}{{/content}}
</div>
{{#js}}
require(['jquery', 'theme_bootstrapbase/bootstrap'], function($) {
    require(['theme_bootstrapbase/bootstrap'], function() {
        var target = $("#calendar-day-popover-link-{{courseid}}-{{year}}-{{yday}}-{{uniqid}}");
        target.popover({
            content: function() {
                var source = target.next().find("> *:not('.hidden')");
                var content = $('<div>');

                if (source.length) {
                    content.html(source.clone(false));
                } else {
                    content.html(target.data('alternate'));
                }

                return content.html();
            }
        });
    });
});
{{/js}}
