71 lines
1.4 KiB
JavaScript
Raw Normal View History

2021-07-27 14:46:32 +02:00
/*global imce:true*/
(function ($, Drupal, imce) {
'use strict';
/**
* @file
* Defines imce File object.
*/
/**
* File.
*/
imce.File = function (name) {
this.construct(name);
};
/**
* Item prototype
*/
var ItemProto = imce.Item.prototype;
/**
* File prototype extends Item prototype.
*/
var File = $.extend(imce.File.prototype, ItemProto);
/**
* Initialize the file object.
*/
File.construct = function (name) {
this.isFile = true;
this.type = 'file';
ItemProto.construct.apply(this, arguments);
};
/**
* Initialize DOM elements.
*/
File.createEl = function () {
if (!this.el) {
ItemProto.createEl.apply(this, arguments);
this.el.className += ' file';
}
};
/**
* Name change handler.
*/
File.onNameChange = function (oldval) {
ItemProto.onNameChange.apply(this, arguments);
// Get the new extension
var File = this;
var newext = imce.getExt(File.name);
// Check if the extension has changed
if (File.ext !== newext) {
// Remove the classname of old ext
if (File.ext != null) {
if (File.ext) {
$(File.el).removeClass('file-' + File.ext.toLowerCase());
}
}
// Add the classname for new ext
if (newext) {
File.el.className += ' file-' + newext.toLowerCase();
}
File.ext = newext;
}
};
})(jQuery, Drupal, imce);