HOME


Mini Shell 1.0
DIR: /home/islapiiu/sites/faithlinkint/control-panel/plugins/tinymce/plugins/insertdatetime/
Upload File :
Current File : /home/islapiiu/sites/faithlinkint/control-panel/plugins/tinymce/plugins/insertdatetime/plugin.js
/**
 
 * plugin.js
 
 *
 
 * Released under LGPL License.
 
 * Copyright (c) 1999-2015 Ephox Corp. All rights reserved
 
 *
 
 * License: http://www.tinymce.com/license
 
 * Contributing: http://www.tinymce.com/contributing
 
 */



/*global tinymce:true */



tinymce.PluginManager.add('insertdatetime', function (editor) {

    var daysShort = "Sun Mon Tue Wed Thu Fri Sat Sun".split(' ');

    var daysLong = "Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sunday".split(' ');

    var monthsShort = "Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(' ');

    var monthsLong = "January February March April May June July August September October November December".split(' ');

    var menuItems = [], lastFormat, defaultButtonTimeFormat;



    function getDateTime(fmt, date) {

        function addZeros(value, len) {

            value = "" + value;



            if (value.length < len) {

                for (var i = 0; i < (len - value.length); i++) {

                    value = "0" + value;

                }

            }



            return value;

        }



        date = date || new Date();



        fmt = fmt.replace("%D", "%m/%d/%Y");

        fmt = fmt.replace("%r", "%I:%M:%S %p");

        fmt = fmt.replace("%Y", "" + date.getFullYear());

        fmt = fmt.replace("%y", "" + date.getYear());

        fmt = fmt.replace("%m", addZeros(date.getMonth() + 1, 2));

        fmt = fmt.replace("%d", addZeros(date.getDate(), 2));

        fmt = fmt.replace("%H", "" + addZeros(date.getHours(), 2));

        fmt = fmt.replace("%M", "" + addZeros(date.getMinutes(), 2));

        fmt = fmt.replace("%S", "" + addZeros(date.getSeconds(), 2));

        fmt = fmt.replace("%I", "" + ((date.getHours() + 11) % 12 + 1));

        fmt = fmt.replace("%p", "" + (date.getHours() < 12 ? "AM" : "PM"));

        fmt = fmt.replace("%B", "" + editor.translate(monthsLong[date.getMonth()]));

        fmt = fmt.replace("%b", "" + editor.translate(monthsShort[date.getMonth()]));

        fmt = fmt.replace("%A", "" + editor.translate(daysLong[date.getDay()]));

        fmt = fmt.replace("%a", "" + editor.translate(daysShort[date.getDay()]));

        fmt = fmt.replace("%%", "%");



        return fmt;

    }



    function insertDateTime(format) {

        var html = getDateTime(format);



        if (editor.settings.insertdatetime_element) {

            var computerTime;



            if (/%[HMSIp]/.test(format)) {

                computerTime = getDateTime("%Y-%m-%dT%H:%M");

            } else {

                computerTime = getDateTime("%Y-%m-%d");

            }



            html = '<time datetime="' + computerTime + '">' + html + '</time>';



            var timeElm = editor.dom.getParent(editor.selection.getStart(), 'time');

            if (timeElm) {

                editor.dom.setOuterHTML(timeElm, html);

                return;

            }

        }



        editor.insertContent(html);

    }



    editor.addCommand('mceInsertDate', function () {

        insertDateTime(editor.getParam("insertdatetime_dateformat", editor.translate("%Y-%m-%d")));

    });



    editor.addCommand('mceInsertTime', function () {

        insertDateTime(editor.getParam("insertdatetime_timeformat", editor.translate('%H:%M:%S')));

    });



    editor.addButton('insertdatetime', {

        type: 'splitbutton',

        title: 'Insert date/time',

        onclick: function () {

            insertDateTime(lastFormat || defaultButtonTimeFormat);

        },

        menu: menuItems

    });



    tinymce.each(editor.settings.insertdatetime_formats || [

        "%H:%M:%S",

        "%Y-%m-%d",

        "%I:%M:%S %p",

        "%D"

    ], function (fmt) {

        if (!defaultButtonTimeFormat) {

            defaultButtonTimeFormat = fmt;

        }



        menuItems.push({

            text: getDateTime(fmt),

            onclick: function () {

                lastFormat = fmt;

                insertDateTime(fmt);

            }

        });

    });



    editor.addMenuItem('insertdatetime', {

        icon: 'date',

        text: 'Insert date/time',

        menu: menuItems,

        context: 'insert'

    });

});