mirror of
https://github.com/ldxw/cdn.git
synced 2026-08-14 13:01:23 +08:00
Tmail v4.3.6
This commit is contained in:
@@ -0,0 +1,116 @@
|
||||
/*
|
||||
* Container style
|
||||
*/
|
||||
.ps {
|
||||
overflow: hidden !important;
|
||||
overflow-anchor: none;
|
||||
-ms-overflow-style: none;
|
||||
touch-action: auto;
|
||||
-ms-touch-action: auto;
|
||||
}
|
||||
|
||||
/*
|
||||
* Scrollbar rail styles
|
||||
*/
|
||||
.ps__rail-x {
|
||||
display: none;
|
||||
opacity: 0;
|
||||
transition: background-color .2s linear, opacity .2s linear;
|
||||
-webkit-transition: background-color .2s linear, opacity .2s linear;
|
||||
height: 15px;
|
||||
/* there must be 'bottom' or 'top' for ps__rail-x */
|
||||
bottom: 0px;
|
||||
/* please don't change 'position' */
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.ps__rail-y {
|
||||
display: none;
|
||||
opacity: 0;
|
||||
transition: background-color .2s linear, opacity .2s linear;
|
||||
-webkit-transition: background-color .2s linear, opacity .2s linear;
|
||||
width: 15px;
|
||||
/* there must be 'right' or 'left' for ps__rail-y */
|
||||
right: 0;
|
||||
/* please don't change 'position' */
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.ps--active-x > .ps__rail-x,
|
||||
.ps--active-y > .ps__rail-y {
|
||||
display: block;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.ps:hover > .ps__rail-x,
|
||||
.ps:hover > .ps__rail-y,
|
||||
.ps--focus > .ps__rail-x,
|
||||
.ps--focus > .ps__rail-y,
|
||||
.ps--scrolling-x > .ps__rail-x,
|
||||
.ps--scrolling-y > .ps__rail-y {
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
.ps .ps__rail-x:hover,
|
||||
.ps .ps__rail-y:hover,
|
||||
.ps .ps__rail-x:focus,
|
||||
.ps .ps__rail-y:focus,
|
||||
.ps .ps__rail-x.ps--clicking,
|
||||
.ps .ps__rail-y.ps--clicking {
|
||||
background-color: #eee;
|
||||
opacity: 0.9;
|
||||
}
|
||||
|
||||
/*
|
||||
* Scrollbar thumb styles
|
||||
*/
|
||||
.ps__thumb-x {
|
||||
background-color: #aaa;
|
||||
border-radius: 6px;
|
||||
transition: background-color .2s linear, height .2s ease-in-out;
|
||||
-webkit-transition: background-color .2s linear, height .2s ease-in-out;
|
||||
height: 6px;
|
||||
/* there must be 'bottom' for ps__thumb-x */
|
||||
bottom: 2px;
|
||||
/* please don't change 'position' */
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.ps__thumb-y {
|
||||
background-color: #aaa;
|
||||
border-radius: 6px;
|
||||
transition: background-color .2s linear, width .2s ease-in-out;
|
||||
-webkit-transition: background-color .2s linear, width .2s ease-in-out;
|
||||
width: 6px;
|
||||
/* there must be 'right' for ps__thumb-y */
|
||||
right: 2px;
|
||||
/* please don't change 'position' */
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.ps__rail-x:hover > .ps__thumb-x,
|
||||
.ps__rail-x:focus > .ps__thumb-x,
|
||||
.ps__rail-x.ps--clicking .ps__thumb-x {
|
||||
background-color: #999;
|
||||
height: 11px;
|
||||
}
|
||||
|
||||
.ps__rail-y:hover > .ps__thumb-y,
|
||||
.ps__rail-y:focus > .ps__thumb-y,
|
||||
.ps__rail-y.ps--clicking .ps__thumb-y {
|
||||
background-color: #999;
|
||||
width: 11px;
|
||||
}
|
||||
|
||||
/* MS supports */
|
||||
@supports (-ms-overflow-style: none) {
|
||||
.ps {
|
||||
overflow: auto !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
|
||||
.ps {
|
||||
overflow: auto !important;
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
Vendored
+7
@@ -0,0 +1,7 @@
|
||||
/*!
|
||||
* Hasher <http://github.com/millermedeiros/hasher>
|
||||
* @author Miller Medeiros
|
||||
* @version 1.2.0 (2013/11/11 03:18 PM)
|
||||
* Released under the MIT License
|
||||
*/
|
||||
(function(){var a=function(b){var c=(function(k){var p=25,r=k.document,n=k.history,x=b.Signal,f,v,m,F,d,D,t=/#(.*)$/,j=/(\?.*)|(\#.*)/,g=/^\#/,i=(!+"\v1"),B=("onhashchange" in k)&&r.documentMode!==7,e=i&&!B,s=(location.protocol==="file:");function o(G){return String(G||"").replace(/\W/g,"\\$&")}function u(H){if(!H){return""}var G=new RegExp("^"+o(f.prependHash)+"|"+o(f.appendHash)+"$","g");return H.replace(G,"")}function E(){var G=t.exec(f.getURL());var I=(G&&G[1])||"";try{return f.raw?I:decodeURIComponent(I)}catch(H){return I}}function A(){return(d)?d.contentWindow.frameHash:null}function z(){d=r.createElement("iframe");d.src="about:blank";d.style.display="none";r.body.appendChild(d)}function h(){if(d&&v!==A()){var G=d.contentWindow.document;G.open();G.write("<html><head><title>"+r.title+'</title><script type="text/javascript">var frameHash="'+v+'";<\/script></head><body> </body></html>');G.close()}}function l(G,H){if(v!==G){var I=v;v=G;if(e){if(!H){h()}else{d.contentWindow.frameHash=G}}f.changed.dispatch(u(G),u(I))}}if(e){D=function(){var H=E(),G=A();if(G!==v&&G!==H){f.setHash(u(G))}else{if(H!==v){l(H)}}}}else{D=function(){var G=E();if(G!==v){l(G)}}}function C(I,G,H){if(I.addEventListener){I.addEventListener(G,H,false)}else{if(I.attachEvent){I.attachEvent("on"+G,H)}}}function y(I,G,H){if(I.removeEventListener){I.removeEventListener(G,H,false)}else{if(I.detachEvent){I.detachEvent("on"+G,H)}}}function q(H){H=Array.prototype.slice.call(arguments);var G=H.join(f.separator);G=G?f.prependHash+G.replace(g,"")+f.appendHash:G;return G}function w(G){G=encodeURI(G);if(i&&s){G=G.replace(/\?/,"%3F")}return G}f={VERSION:"1.2.0",raw:false,appendHash:"",prependHash:"/",separator:"/",changed:new x(),stopped:new x(),initialized:new x(),init:function(){if(F){return}v=E();if(B){C(k,"hashchange",D)}else{if(e){if(!d){z()}h()}m=setInterval(D,p)}F=true;f.initialized.dispatch(u(v))},stop:function(){if(!F){return}if(B){y(k,"hashchange",D)}else{clearInterval(m);m=null}F=false;f.stopped.dispatch(u(v))},isActive:function(){return F},getURL:function(){return k.location.href},getBaseURL:function(){return f.getURL().replace(j,"")},setHash:function(G){G=q.apply(null,arguments);if(G!==v){l(G);if(G===v){if(!f.raw){G=w(G)}k.location.hash="#"+G}}},replaceHash:function(G){G=q.apply(null,arguments);if(G!==v){l(G,true);if(G===v){if(!f.raw){G=w(G)}k.location.replace("#"+G)}}},getHash:function(){return u(v)},getHashAsArray:function(){return f.getHash().split(f.separator)},dispose:function(){f.stop();f.initialized.dispose();f.stopped.dispose();f.changed.dispose();d=f=k.hasher=null},toString:function(){return'[hasher version="'+f.VERSION+'" hash="'+f.getHash()+'"]'}};f.initialized.memorize=true;return f}(window));return c};if(typeof define==="function"&&define.amd){define(["signals"],a)}else{if(typeof exports==="object"){module.exports=a(require("signals"))}else{window.hasher=a(window.signals)}}}());
|
||||
@@ -0,0 +1,367 @@
|
||||
/*jslint onevar:true, undef:true, newcap:true, regexp:true, bitwise:true, maxerr:50, indent:4, white:false, nomen:false, plusplus:false */
|
||||
/*global window:false, global:false*/
|
||||
|
||||
/*!!
|
||||
* JS Signals <http://millermedeiros.github.com/js-signals/>
|
||||
* Released under the MIT license <http://www.opensource.org/licenses/mit-license.php>
|
||||
* @author Miller Medeiros <http://millermedeiros.com/>
|
||||
* @version 0.6.3
|
||||
* @build 187 (07/11/2011 10:14 AM)
|
||||
*/
|
||||
(function(global){
|
||||
|
||||
/**
|
||||
* @namespace Signals Namespace - Custom event/messaging system based on AS3 Signals
|
||||
* @name signals
|
||||
*/
|
||||
var signals = /** @lends signals */{
|
||||
/**
|
||||
* Signals Version Number
|
||||
* @type String
|
||||
* @const
|
||||
*/
|
||||
VERSION : '0.6.3'
|
||||
};
|
||||
|
||||
|
||||
|
||||
// SignalBinding -------------------------------------------------
|
||||
//================================================================
|
||||
|
||||
/**
|
||||
* Object that represents a binding between a Signal and a listener function.
|
||||
* <br />- <strong>This is an internal constructor and shouldn't be called by regular users.</strong>
|
||||
* <br />- inspired by Joa Ebert AS3 SignalBinding and Robert Penner's Slot classes.
|
||||
* @author Miller Medeiros
|
||||
* @constructor
|
||||
* @internal
|
||||
* @name signals.SignalBinding
|
||||
* @param {signals.Signal} signal Reference to Signal object that listener is currently bound to.
|
||||
* @param {Function} listener Handler function bound to the signal.
|
||||
* @param {boolean} isOnce If binding should be executed just once.
|
||||
* @param {Object} [listenerContext] Context on which listener will be executed (object that should represent the `this` variable inside listener function).
|
||||
* @param {Number} [priority] The priority level of the event listener. (default = 0).
|
||||
*/
|
||||
function SignalBinding(signal, listener, isOnce, listenerContext, priority) {
|
||||
|
||||
/**
|
||||
* Handler function bound to the signal.
|
||||
* @type Function
|
||||
* @private
|
||||
*/
|
||||
this._listener = listener;
|
||||
|
||||
/**
|
||||
* If binding should be executed just once.
|
||||
* @type boolean
|
||||
* @private
|
||||
*/
|
||||
this._isOnce = isOnce;
|
||||
|
||||
/**
|
||||
* Context on which listener will be executed (object that should represent the `this` variable inside listener function).
|
||||
* @memberOf signals.SignalBinding.prototype
|
||||
* @name context
|
||||
* @type Object|undefined|null
|
||||
*/
|
||||
this.context = listenerContext;
|
||||
|
||||
/**
|
||||
* Reference to Signal object that listener is currently bound to.
|
||||
* @type signals.Signal
|
||||
* @private
|
||||
*/
|
||||
this._signal = signal;
|
||||
|
||||
/**
|
||||
* Listener priority
|
||||
* @type Number
|
||||
* @private
|
||||
*/
|
||||
this._priority = priority || 0;
|
||||
}
|
||||
|
||||
SignalBinding.prototype = /** @lends signals.SignalBinding.prototype */ {
|
||||
|
||||
/**
|
||||
* If binding is active and should be executed.
|
||||
* @type boolean
|
||||
*/
|
||||
active : true,
|
||||
|
||||
/**
|
||||
* Default parameters passed to listener during `Signal.dispatch` and `SignalBinding.execute`. (curried parameters)
|
||||
* @type Array|null
|
||||
*/
|
||||
params : null,
|
||||
|
||||
/**
|
||||
* Call listener passing arbitrary parameters.
|
||||
* <p>If binding was added using `Signal.addOnce()` it will be automatically removed from signal dispatch queue, this method is used internally for the signal dispatch.</p>
|
||||
* @param {Array} [paramsArr] Array of parameters that should be passed to the listener
|
||||
* @return {*} Value returned by the listener.
|
||||
*/
|
||||
execute : function (paramsArr) {
|
||||
var handlerReturn, params;
|
||||
if (this.active && !!this._listener) {
|
||||
params = this.params? this.params.concat(paramsArr) : paramsArr;
|
||||
handlerReturn = this._listener.apply(this.context, params);
|
||||
if (this._isOnce) {
|
||||
this.detach();
|
||||
}
|
||||
}
|
||||
return handlerReturn;
|
||||
},
|
||||
|
||||
/**
|
||||
* Detach binding from signal.
|
||||
* - alias to: mySignal.remove(myBinding.getListener());
|
||||
* @return {Function|null} Handler function bound to the signal or `null` if binding was previously detached.
|
||||
*/
|
||||
detach : function () {
|
||||
return this.isBound()? this._signal.remove(this._listener) : null;
|
||||
},
|
||||
|
||||
/**
|
||||
* @return {Boolean} `true` if binding is still bound to the signal and have a listener.
|
||||
*/
|
||||
isBound : function () {
|
||||
return (!!this._signal && !!this._listener);
|
||||
},
|
||||
|
||||
/**
|
||||
* @return {Function} Handler function bound to the signal.
|
||||
*/
|
||||
getListener : function () {
|
||||
return this._listener;
|
||||
},
|
||||
|
||||
/**
|
||||
* Delete instance properties
|
||||
* @private
|
||||
*/
|
||||
_destroy : function () {
|
||||
delete this._signal;
|
||||
delete this._listener;
|
||||
delete this.context;
|
||||
},
|
||||
|
||||
/**
|
||||
* @return {boolean} If SignalBinding will only be executed once.
|
||||
*/
|
||||
isOnce : function () {
|
||||
return this._isOnce;
|
||||
},
|
||||
|
||||
/**
|
||||
* @return {string} String representation of the object.
|
||||
*/
|
||||
toString : function () {
|
||||
return '[SignalBinding isOnce: ' + this._isOnce +', isBound: '+ this.isBound() +', active: ' + this.active + ']';
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
||||
/*global signals:true, SignalBinding:false*/
|
||||
|
||||
// Signal --------------------------------------------------------
|
||||
//================================================================
|
||||
|
||||
function validateListener(listener, fnName) {
|
||||
if (typeof listener !== 'function') {
|
||||
throw new Error( 'listener is a required param of {fn}() and should be a Function.'.replace('{fn}', fnName) );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Custom event broadcaster
|
||||
* <br />- inspired by Robert Penner's AS3 Signals.
|
||||
* @author Miller Medeiros
|
||||
* @constructor
|
||||
*/
|
||||
signals.Signal = function () {
|
||||
/**
|
||||
* @type Array.<SignalBinding>
|
||||
* @private
|
||||
*/
|
||||
this._bindings = [];
|
||||
};
|
||||
|
||||
signals.Signal.prototype = {
|
||||
|
||||
/**
|
||||
* @type boolean
|
||||
* @private
|
||||
*/
|
||||
_shouldPropagate : true,
|
||||
|
||||
/**
|
||||
* If Signal is active and should broadcast events.
|
||||
* <p><strong>IMPORTANT:</strong> Setting this property during a dispatch will only affect the next dispatch, if you want to stop the propagation of a signal use `halt()` instead.</p>
|
||||
* @type boolean
|
||||
*/
|
||||
active : true,
|
||||
|
||||
/**
|
||||
* @param {Function} listener
|
||||
* @param {boolean} isOnce
|
||||
* @param {Object} [scope]
|
||||
* @param {Number} [priority]
|
||||
* @return {SignalBinding}
|
||||
* @private
|
||||
*/
|
||||
_registerListener : function (listener, isOnce, scope, priority) {
|
||||
|
||||
var prevIndex = this._indexOfListener(listener),
|
||||
binding;
|
||||
|
||||
if (prevIndex !== -1) { //avoid creating a new Binding for same listener if already added to list
|
||||
binding = this._bindings[prevIndex];
|
||||
if (binding.isOnce() !== isOnce) {
|
||||
throw new Error('You cannot add'+ (isOnce? '' : 'Once') +'() then add'+ (!isOnce? '' : 'Once') +'() the same listener without removing the relationship first.');
|
||||
}
|
||||
} else {
|
||||
binding = new SignalBinding(this, listener, isOnce, scope, priority);
|
||||
this._addBinding(binding);
|
||||
}
|
||||
|
||||
return binding;
|
||||
},
|
||||
|
||||
/**
|
||||
* @param {SignalBinding} binding
|
||||
* @private
|
||||
*/
|
||||
_addBinding : function (binding) {
|
||||
//simplified insertion sort
|
||||
var n = this._bindings.length;
|
||||
do { --n; } while (this._bindings[n] && binding._priority <= this._bindings[n]._priority);
|
||||
this._bindings.splice(n + 1, 0, binding);
|
||||
},
|
||||
|
||||
/**
|
||||
* @param {Function} listener
|
||||
* @return {number}
|
||||
* @private
|
||||
*/
|
||||
_indexOfListener : function (listener) {
|
||||
var n = this._bindings.length;
|
||||
while (n--) {
|
||||
if (this._bindings[n]._listener === listener) {
|
||||
return n;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
},
|
||||
|
||||
/**
|
||||
* Add a listener to the signal.
|
||||
* @param {Function} listener Signal handler function.
|
||||
* @param {Object} [scope] Context on which listener will be executed (object that should represent the `this` variable inside listener function).
|
||||
* @param {Number} [priority] The priority level of the event listener. Listeners with higher priority will be executed before listeners with lower priority. Listeners with same priority level will be executed at the same order as they were added. (default = 0)
|
||||
* @return {SignalBinding} An Object representing the binding between the Signal and listener.
|
||||
*/
|
||||
add : function (listener, scope, priority) {
|
||||
validateListener(listener, 'add');
|
||||
return this._registerListener(listener, false, scope, priority);
|
||||
},
|
||||
|
||||
/**
|
||||
* Add listener to the signal that should be removed after first execution (will be executed only once).
|
||||
* @param {Function} listener Signal handler function.
|
||||
* @param {Object} [scope] Context on which listener will be executed (object that should represent the `this` variable inside listener function).
|
||||
* @param {Number} [priority] The priority level of the event listener. Listeners with higher priority will be executed before listeners with lower priority. Listeners with same priority level will be executed at the same order as they were added. (default = 0)
|
||||
* @return {SignalBinding} An Object representing the binding between the Signal and listener.
|
||||
*/
|
||||
addOnce : function (listener, scope, priority) {
|
||||
validateListener(listener, 'addOnce');
|
||||
return this._registerListener(listener, true, scope, priority);
|
||||
},
|
||||
|
||||
/**
|
||||
* Remove a single listener from the dispatch queue.
|
||||
* @param {Function} listener Handler function that should be removed.
|
||||
* @return {Function} Listener handler function.
|
||||
*/
|
||||
remove : function (listener) {
|
||||
validateListener(listener, 'remove');
|
||||
|
||||
var i = this._indexOfListener(listener);
|
||||
if (i !== -1) {
|
||||
this._bindings[i]._destroy(); //no reason to a SignalBinding exist if it isn't attached to a signal
|
||||
this._bindings.splice(i, 1);
|
||||
}
|
||||
return listener;
|
||||
},
|
||||
|
||||
/**
|
||||
* Remove all listeners from the Signal.
|
||||
*/
|
||||
removeAll : function () {
|
||||
var n = this._bindings.length;
|
||||
while (n--) {
|
||||
this._bindings[n]._destroy();
|
||||
}
|
||||
this._bindings.length = 0;
|
||||
},
|
||||
|
||||
/**
|
||||
* @return {number} Number of listeners attached to the Signal.
|
||||
*/
|
||||
getNumListeners : function () {
|
||||
return this._bindings.length;
|
||||
},
|
||||
|
||||
/**
|
||||
* Stop propagation of the event, blocking the dispatch to next listeners on the queue.
|
||||
* <p><strong>IMPORTANT:</strong> should be called only during signal dispatch, calling it before/after dispatch won't affect signal broadcast.</p>
|
||||
* @see signals.Signal.prototype.disable
|
||||
*/
|
||||
halt : function () {
|
||||
this._shouldPropagate = false;
|
||||
},
|
||||
|
||||
/**
|
||||
* Dispatch/Broadcast Signal to all listeners added to the queue.
|
||||
* @param {...*} [params] Parameters that should be passed to each handler.
|
||||
*/
|
||||
dispatch : function (params) {
|
||||
if (! this.active) {
|
||||
return;
|
||||
}
|
||||
|
||||
var paramsArr = Array.prototype.slice.call(arguments),
|
||||
bindings = this._bindings.slice(), //clone array in case add/remove items during dispatch
|
||||
n = this._bindings.length;
|
||||
|
||||
this._shouldPropagate = true; //in case `halt` was called before dispatch or during the previous dispatch.
|
||||
|
||||
//execute all callbacks until end of the list or until a callback returns `false` or stops propagation
|
||||
//reverse loop since listeners with higher priority will be added at the end of the list
|
||||
do { n--; } while (bindings[n] && this._shouldPropagate && bindings[n].execute(paramsArr) !== false);
|
||||
},
|
||||
|
||||
/**
|
||||
* Remove all bindings from signal and destroy any reference to external objects (destroy Signal object).
|
||||
* <p><strong>IMPORTANT:</strong> calling any method on the signal instance after calling dispose will throw errors.</p>
|
||||
*/
|
||||
dispose : function () {
|
||||
this.removeAll();
|
||||
delete this._bindings;
|
||||
},
|
||||
|
||||
/**
|
||||
* @return {string} String representation of the object.
|
||||
*/
|
||||
toString : function () {
|
||||
return '[Signal active: '+ this.active +' numListeners: '+ this.getNumListeners() +']';
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
global.signals = signals;
|
||||
|
||||
}(window || this));
|
||||
@@ -0,0 +1,136 @@
|
||||
/*
|
||||
To change this license header, choose License Headers in Project Properties.
|
||||
To change this template file, choose Tools | Templates
|
||||
and open the template in the editor.
|
||||
*/
|
||||
/*
|
||||
Created on : 19 Oct, 2017, 11:29:05 AM
|
||||
Author : Harshit
|
||||
*/
|
||||
|
||||
* {
|
||||
font-family: "Segoe UI", 'Lato', sans-serif;;
|
||||
}
|
||||
|
||||
.header {
|
||||
height: 100px;
|
||||
}
|
||||
|
||||
.header h3 {
|
||||
float: right;
|
||||
margin: 60px 0px;
|
||||
}
|
||||
|
||||
#logo {
|
||||
float: left;
|
||||
margin: 50px 0px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
input, textarea, select {
|
||||
border: none;
|
||||
font-weight: 300;
|
||||
font-size: 28px;
|
||||
border-bottom: 1px solid #000;
|
||||
}
|
||||
|
||||
#adminLogin {
|
||||
margin: 150px 0px;
|
||||
}
|
||||
|
||||
#titleText {
|
||||
margin: 50px;
|
||||
font-size: 28px;
|
||||
float: left;
|
||||
}
|
||||
|
||||
input[type="submit"] {
|
||||
background: none;
|
||||
margin-top: 20px;
|
||||
font-size: 24px;
|
||||
}
|
||||
|
||||
.text-field {
|
||||
width: 100%;
|
||||
margin: 20px 0px;
|
||||
}
|
||||
|
||||
.text-field span {
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
.text-field input, .text-field textarea,.text-field select {
|
||||
border-bottom: 1px solid #000;
|
||||
width: 100%;
|
||||
font-size: 24px;
|
||||
}
|
||||
|
||||
.divided-text-field input.small-inner-fields {
|
||||
border-bottom: 1px solid #000;
|
||||
width: 19%;
|
||||
font-size: 18px;
|
||||
margin-right: 1%;
|
||||
}
|
||||
|
||||
.divided-text-field input.big-inner-fields {
|
||||
border-bottom: 1px solid #000;
|
||||
width: 60%;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
.inner-fields, .small-inner-fields, .big-inner-fields {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
h2 {
|
||||
margin: 25px 0px;
|
||||
}
|
||||
|
||||
.addIcons {
|
||||
font-size: 32px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
input[name="configuration"], input[name="options"] {
|
||||
font-weight: 600;
|
||||
float: right;
|
||||
}
|
||||
|
||||
.success {
|
||||
font-size: 24px;
|
||||
font-weight: 300;
|
||||
color: #0F9D58;
|
||||
}
|
||||
|
||||
.error {
|
||||
font-size: 24px;
|
||||
font-weight: 300;
|
||||
color: #CD0000;
|
||||
}
|
||||
|
||||
textarea {
|
||||
font-size: 16px !important;
|
||||
}
|
||||
|
||||
#test-connection {
|
||||
background: #444;
|
||||
color: #fff;
|
||||
padding: 5px 10px;
|
||||
cursor: pointer;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
#test-result {
|
||||
padding-left: 5px;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 600px) {
|
||||
|
||||
.divided-text-field input.small-inner-fields {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.divided-text-field input.big-inner-fields {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
Vendored
+7
File diff suppressed because one or more lines are too long
@@ -0,0 +1,56 @@
|
||||
/* cyrillic-ext https://fonts.gstatic.com/s/opensans/v17/mem8YaGs126MiZpBA-UFWJ0bbck.woff2 */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans Regular'), local('OpenSans-Regular'), url(https://cdn.jsdelivr.net/gh/ldxw/CDN@0.0001/4.3.6/Modern/css/fonts/mem8YaGs126MiZpBA-UFWJ0bbck.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
||||
}
|
||||
/* cyrillic https://fonts.gstatic.com/s/opensans/v17/mem8YaGs126MiZpBA-UFUZ0bbck.woff2 */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans Regular'), local('OpenSans-Regular'), url(https://cdn.jsdelivr.net/gh/ldxw/CDN@0.0001/4.3.6/Modern/css/fonts/mem8YaGs126MiZpBA-UFUZ0bbck.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* greek-ext https://fonts.gstatic.com/s/opensans/v17/mem8YaGs126MiZpBA-UFWZ0bbck.woff2 */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans Regular'), local('OpenSans-Regular'), url(https://cdn.jsdelivr.net/gh/ldxw/CDN@0.0001/4.3.6/Modern/css/fonts/mem8YaGs126MiZpBA-UFWZ0bbck.woff2) format('woff2');
|
||||
unicode-range: U+1F00-1FFF;
|
||||
}
|
||||
/* greek https://fonts.gstatic.com/s/opensans/v17/mem8YaGs126MiZpBA-UFVp0bbck.woff2 */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans Regular'), local('OpenSans-Regular'), url(https://cdn.jsdelivr.net/gh/ldxw/CDN@0.0001/4.3.6/Modern/css/fonts/mem8YaGs126MiZpBA-UFVp0bbck.woff2) format('woff2');
|
||||
unicode-range: U+0370-03FF;
|
||||
}
|
||||
/* vietnamese https://fonts.gstatic.com/s/opensans/v17/mem8YaGs126MiZpBA-UFWp0bbck.woff2 */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans Regular'), local('OpenSans-Regular'), url(https://cdn.jsdelivr.net/gh/ldxw/CDN@0.0001/4.3.6/Modern/css/fonts/mem8YaGs126MiZpBA-UFWp0bbck.woff2) format('woff2');
|
||||
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
|
||||
}
|
||||
/* latin-ext https://fonts.gstatic.com/s/opensans/v17/mem8YaGs126MiZpBA-UFW50bbck.woff2 */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans Regular'), local('OpenSans-Regular'), url(https://cdn.jsdelivr.net/gh/ldxw/CDN@0.0001/4.3.6/Modern/css/fonts/mem8YaGs126MiZpBA-UFW50bbck.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin https://fonts.gstatic.com/s/opensans/v17/mem8YaGs126MiZpBA-UFVZ0b.woff2 */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans Regular'), local('OpenSans-Regular'), url(https://cdn.jsdelivr.net/gh/ldxw/CDN@0.0001/4.3.6/Modern/css/fonts/mem8YaGs126MiZpBA-UFVZ0b.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||
}
|
||||
+4
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,761 @@
|
||||
* {
|
||||
font-family: "Segoe UI", 'Open Sans', sans-serif;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
text-decoration: none !important;
|
||||
}
|
||||
|
||||
html,
|
||||
body {
|
||||
height: 100%;
|
||||
margin: 0px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: #e0e6e9 !important;
|
||||
padding: 1.2%;
|
||||
}
|
||||
|
||||
.tmail-container {
|
||||
background-color: #fff;
|
||||
border-radius: 4px;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.tmail-container .row {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.tmail-container .row .col-lg-12 {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.tmail-header {
|
||||
border-top-left-radius: 4px;
|
||||
border-top-right-radius: 4px;
|
||||
height: 100px;
|
||||
background: #673ae2;
|
||||
}
|
||||
|
||||
.tmail-footer {
|
||||
border-bottom-left-radius: 4px;
|
||||
border-bottom-right-radius: 4px;
|
||||
height: 80px;
|
||||
background: #06b4fe;
|
||||
}
|
||||
|
||||
.tmail-mobile-menu {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.tmail-logo {
|
||||
padding: 20px 40px;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.tmail-language-switcher {
|
||||
float: right;
|
||||
height: 100px;
|
||||
margin-right: 20px;
|
||||
}
|
||||
|
||||
.tmail-language-switcher select {
|
||||
margin: 24% 0px;
|
||||
padding: 5px 10px;
|
||||
border-radius: 4px;
|
||||
border: none;
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
}
|
||||
|
||||
.tmail-divider {
|
||||
background: #673ae2;
|
||||
}
|
||||
|
||||
/* TMail Loader Screen */
|
||||
|
||||
.tmail-main .tmail-loader {
|
||||
overflow: hidden !important;
|
||||
}
|
||||
|
||||
.tmail-main .tmail-loader .inner-loader {
|
||||
width: 100%;
|
||||
margin: auto;
|
||||
display: block;
|
||||
height: 100%;
|
||||
padding: 15% 0 0 50px;
|
||||
font-size: 34px;
|
||||
color: #fff;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
overflow: hidden !important;
|
||||
}
|
||||
|
||||
.tmail-main .tmail-loader .inner-loader .lds-ellipsis {
|
||||
margin-left: 48.3%;
|
||||
}
|
||||
|
||||
/* TMail HomePage CSS */
|
||||
|
||||
.tmail-main {
|
||||
height: calc(100% - 180px);
|
||||
background: #673ae2;
|
||||
background: -moz-linear-gradient(top, #673ae2 0%, #3160e4 99%);
|
||||
background: -webkit-linear-gradient(top, #673ae2 0%,#3160e4 99%);
|
||||
background: linear-gradient(to bottom, #673ae2 0%,#3160e4 99%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#673ae2', endColorstr='#3160e4',GradientType=0 );
|
||||
}
|
||||
|
||||
.tmail-main-inner {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.tmail-main .row {
|
||||
height: 100%;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
.tmail-main-inner {
|
||||
width: 100%;
|
||||
color: #fff;
|
||||
margin-top: 5%;
|
||||
}
|
||||
|
||||
.tmail-input-set-email {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.tmail-input-set-email {
|
||||
width: 700px;
|
||||
max-width: 90%;
|
||||
}
|
||||
|
||||
.tmail-input-set-email {
|
||||
margin: 50px 0px;
|
||||
padding: 10px 20px;
|
||||
border: none;
|
||||
font-weight: 300;
|
||||
font-size: 24px;
|
||||
color: #431bb0;
|
||||
background: #fff;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.tmail-input-set-domain {
|
||||
margin: 50px 0px;
|
||||
border: none;
|
||||
font-weight: 300;
|
||||
font-size: 24px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
select:focus, select:focus {
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
}
|
||||
|
||||
select.tmail-input-set-domain {
|
||||
padding: 10px 20px;
|
||||
padding-right: 40px;
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
background: #431bb0;
|
||||
background-image: url("data:image/svg+xml;utf8,<svg fill='white' height='31' viewBox='4 2 29 15' width='31' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/><path d='M0 0h24v24H0z' fill='none'/></svg>");
|
||||
background-repeat: no-repeat;
|
||||
background-position-x: 100%;
|
||||
background-position-y: 10px;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.tmail-main-inner span {
|
||||
padding: 0px 10px;
|
||||
font-size: 48px;
|
||||
font-weight: lighter;
|
||||
}
|
||||
|
||||
.tmail-generate-random i, .tmail-generate-custom i {
|
||||
padding-right: 10px;
|
||||
}
|
||||
|
||||
.tmail-generate-random a, .tmail-generate-custom a {
|
||||
background: #fff;
|
||||
padding: 10px 25px;
|
||||
line-height: 21px;
|
||||
font-size: 21px;
|
||||
border-radius: 4px;
|
||||
font-weight: lighter;
|
||||
}
|
||||
|
||||
.tmail-generate-custom a {
|
||||
background: #431bb0;
|
||||
width: 200px;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.tmail-generate-custom a:hover {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.tmail-generate-custom {
|
||||
margin-bottom: 50px;
|
||||
}
|
||||
|
||||
.tmail-generate-random a {
|
||||
background: #06b4fe;
|
||||
width: 230px;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.tmail-generate-random a:hover {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.tmail-generate-random {
|
||||
margin: 50px 0px;
|
||||
}
|
||||
|
||||
/* TMail Body CSS */
|
||||
|
||||
.tmail-body {
|
||||
height: calc(100% - 180px);
|
||||
display: none;
|
||||
}
|
||||
|
||||
.tmail-body .row {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.tmail-sidebar {
|
||||
border-right: 1px solid #eee;
|
||||
height: 100%;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
ul.tmail-main-menu {
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
ul.tmail-main-menu li {
|
||||
padding: 15px 40px;
|
||||
color: #52586c;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
ul.tmail-main-menu a {
|
||||
color: #52586c;
|
||||
text-decoration: none !important;
|
||||
}
|
||||
|
||||
ul.tmail-main-menu li.active {
|
||||
background: #eee;
|
||||
}
|
||||
|
||||
ul.tmail-main-menu li:hover {
|
||||
background: #5a47d1;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
ul.tmail-main-menu li:hover a {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
ul.tmail-main-menu li i {
|
||||
width: 15%;
|
||||
}
|
||||
|
||||
ul.tmail-main-menu li span {
|
||||
width: 85%;
|
||||
}
|
||||
|
||||
.menu-title {
|
||||
padding: 15px 40px;
|
||||
margin: 20px 0px 10px 0px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.tmail-list {
|
||||
border-right: 1px solid #eee;
|
||||
height: 100%;
|
||||
padding: 0px;
|
||||
overflow-y: scroll;
|
||||
transition: display 2s;
|
||||
}
|
||||
|
||||
.tmail-compose {
|
||||
padding: 15px 20px;
|
||||
margin: 40px;
|
||||
text-align: center;
|
||||
background: #00b8ff;
|
||||
border-radius: 4px;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.tmail-search-input, .tmail-current-id {
|
||||
padding: 10px;
|
||||
border: none;
|
||||
border-bottom: 1px solid #eee;
|
||||
}
|
||||
|
||||
.tmail-current-id {
|
||||
background: #fcc747;
|
||||
padding: 20px 10px;
|
||||
cursor: copy;
|
||||
}
|
||||
|
||||
.tmail-current-id-icon {
|
||||
width: 40px;
|
||||
text-align: center;
|
||||
line-height: 45px;
|
||||
}
|
||||
|
||||
.tmail-current-id-info {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
#current-tmail-id {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.tmail-current-id-info-text {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
#reloading-line {
|
||||
padding-right: 15px;
|
||||
display: none;
|
||||
}
|
||||
|
||||
#reloading-line i {
|
||||
font-size: 36px;
|
||||
}
|
||||
|
||||
#reloading-msg {
|
||||
line-height: 42px;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.tmail-search-input .input-group-prepend {
|
||||
border-radius: 0px;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.tmail-search-input .input-group-text, .tmail-current-id .input-group-text {
|
||||
background-color: transparent;
|
||||
border-radius: 0px;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.tmail-search-input #tmail-search {
|
||||
border-radius: 0px;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.tmail-search-input #tmail-search:focus {
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
ul.tmail-list-ul {
|
||||
list-style-type: none;
|
||||
padding-left: 0px;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
ul.tmail-list-ul li {
|
||||
padding: 20px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
ul.tmail-list-ul li.tmail-list-active {
|
||||
background: #f1f1f1;
|
||||
}
|
||||
|
||||
ul.tmail-list-ul li:hover {
|
||||
background: #f9f9f9;
|
||||
}
|
||||
|
||||
ul.tmail-list-ul li .name {
|
||||
float: left;
|
||||
color: #a0aabe;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
ul.tmail-list-ul li .date {
|
||||
float: right;
|
||||
font-weight: bold;
|
||||
color: #a0aabe;
|
||||
}
|
||||
|
||||
ul.tmail-list-ul li .subject {
|
||||
font-weight: bold;
|
||||
color: #52586c;
|
||||
margin-bottom: 10px;
|
||||
height: 24px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
|
||||
ul.tmail-list-ul li .body {
|
||||
color: #777e8e;
|
||||
height: 48px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.tmail-email-body {
|
||||
padding: 50px !important;
|
||||
border-bottom-right-radius: 4px;
|
||||
height: 100%;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
.tmail-email-title {
|
||||
font-size: 24px;
|
||||
font-weight: bold;
|
||||
color: #06b4fe;
|
||||
}
|
||||
|
||||
.tmail-email-body-content {
|
||||
color: #777e8e;
|
||||
margin-top: 50px;
|
||||
}
|
||||
|
||||
.tmail-email-attachments {
|
||||
margin-top: 30px;
|
||||
margin-bottom: 30px;
|
||||
border-top: 1px solid #ccc;
|
||||
padding: 40px 0;
|
||||
}
|
||||
|
||||
.tmail-email-attachments a {
|
||||
padding: 10px 20px;
|
||||
border: 1px solid #673AE2;
|
||||
color: #673AE2;
|
||||
}
|
||||
|
||||
.tmail-email-attachments a:hover {
|
||||
background: #673AE2;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.tmail-email-attachments a i {
|
||||
padding-right: 5px;
|
||||
}
|
||||
|
||||
.tmail-list-placeholder {
|
||||
line-height: 50vh;
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
opacity: 0.1;
|
||||
font-size: 24px;
|
||||
}
|
||||
|
||||
.tmail-email-body-placeholder {
|
||||
display: table;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.tmail-email-body-placeholder span {
|
||||
display: table-cell;
|
||||
vertical-align: middle;
|
||||
font-size: 24px;
|
||||
font-weight: bold;
|
||||
opacity: 0.1;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.tmail-email-description {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.tmail-email-time {
|
||||
color: #222;
|
||||
}
|
||||
|
||||
.tmail-email-response {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
margin: 50px 0px;
|
||||
}
|
||||
|
||||
.tmail-email-response textarea {
|
||||
width: 100%;
|
||||
border-radius: 4px;
|
||||
border: 1px solid #ccc;
|
||||
padding: 15px 20px;
|
||||
font-size: 16px;
|
||||
display: block;
|
||||
height: 200px;
|
||||
}
|
||||
|
||||
.tmail-email-response a {
|
||||
position: absolute;
|
||||
bottom: 10px;
|
||||
right: 10px;
|
||||
background: #5a47d1;
|
||||
padding: 10px 20px;
|
||||
color: #fff;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.tmail-list-clear button {
|
||||
margin: 18px 20px 20px 0px;
|
||||
width: 150px;
|
||||
max-width: 100%;
|
||||
padding: 10px 0px 12px 0px;
|
||||
border-radius: 4px;
|
||||
background: #ea3b3b;
|
||||
color: #fff;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.tmail-switch button {
|
||||
margin: 18px 20px 20px 20px;
|
||||
width: 200px;
|
||||
max-width: 100%;
|
||||
padding: 10px 0px 12px 0px;
|
||||
border-radius: 4px;
|
||||
background: #0177a9;
|
||||
color: #fff;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.tmail-switch button:focus {
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.tmail-switch ul {
|
||||
width: 200px;
|
||||
max-width: 100%;
|
||||
border-radius: 4px;
|
||||
border: none;
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.tmail-switch ul li:first-child {
|
||||
border-top-left-radius: 4px;
|
||||
border-top-right-radius: 4px;
|
||||
padding-top: 20px;
|
||||
}
|
||||
|
||||
.tmail-switch ul li:last-child {
|
||||
border-bottom-left-radius: 4px;
|
||||
border-bottom-right-radius: 4px;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
|
||||
.tmail-switch ul li {
|
||||
padding: 15px 25px;
|
||||
background: #5a47d1;
|
||||
color: #fff;
|
||||
cursor: pointer;
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
|
||||
.tmail-switch ul li.dropdown-create-menu {
|
||||
background: #94c314;
|
||||
}
|
||||
|
||||
.tmail-switch ul li a {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.tmail-icons a {
|
||||
margin-right: 10px;
|
||||
font-size: 36px;
|
||||
color: #fff;
|
||||
position: relative;
|
||||
padding-right: 40px;
|
||||
}
|
||||
|
||||
.tmail-icons a i {
|
||||
position: absolute;
|
||||
top: 40%;
|
||||
}
|
||||
|
||||
.tmail-ads * {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.tmail-ads {
|
||||
overflow: hidden;
|
||||
margin-bottom: 50px;
|
||||
}
|
||||
|
||||
.tmail-email-content-li {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.tmail-body-delete-download-icons div {
|
||||
font-size: 18px;
|
||||
padding: 20px 10px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.tmail-body-download-icon {
|
||||
color: #673ae2;
|
||||
}
|
||||
|
||||
.tmail-body-delete-icon {
|
||||
margin-top: -1px;
|
||||
color: #bc0808;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 1000px) {
|
||||
body {
|
||||
padding: 10px;
|
||||
}
|
||||
.tmail-mobile-menu {
|
||||
font-size: 30px;
|
||||
padding: 22px 10px 22px 30px;
|
||||
color: #fff;
|
||||
float: left;
|
||||
cursor: pointer;
|
||||
width: 60px;
|
||||
}
|
||||
.tmail-mobile-menu i.fa-times,
|
||||
.tmail-mobile-menu i.fa-chevron-left {
|
||||
display: none;
|
||||
}
|
||||
.tmail-logo {
|
||||
padding: 20px 10px;
|
||||
}
|
||||
.setEmail {
|
||||
width: 50%;
|
||||
}
|
||||
.tmail-main-inner {
|
||||
margin-top: 30px;
|
||||
}
|
||||
select.tmail-input-set-domain {
|
||||
margin: 0px 0px 10px 0px;
|
||||
}
|
||||
.tmail-input-set-email,
|
||||
.tmail-input-set-domain {
|
||||
padding: 10px 20px;
|
||||
font-size: 24px;
|
||||
}
|
||||
.tmail-language-switcher select {
|
||||
font-size: 12px;
|
||||
margin: 30px 0;
|
||||
}
|
||||
.tmail-input-set-email {
|
||||
margin: 10px 0;
|
||||
font-size: 18px;
|
||||
}
|
||||
.tmail-input-set-domain {
|
||||
width: 90%;
|
||||
font-size: 18px;
|
||||
}
|
||||
.tmail-generate-random a, .tmail-generate-custom a {
|
||||
width: 90%;
|
||||
font-size: 18px;
|
||||
display: block;
|
||||
}
|
||||
.tmail-email-body {
|
||||
z-index: -1;
|
||||
}
|
||||
}
|
||||
|
||||
/* CSS Loader */
|
||||
|
||||
.lds-ellipsis {
|
||||
position: relative;
|
||||
width: 64px;
|
||||
height: 64px;
|
||||
}
|
||||
.lds-ellipsis div {
|
||||
position: absolute;
|
||||
top: 27px;
|
||||
width: 11px;
|
||||
height: 11px;
|
||||
border-radius: 50%;
|
||||
background: #fff;
|
||||
animation-timing-function: cubic-bezier(0, 1, 1, 0);
|
||||
}
|
||||
.lds-ellipsis div:nth-child(1) {
|
||||
left: 6px;
|
||||
animation: lds-ellipsis1 0.6s infinite;
|
||||
}
|
||||
.lds-ellipsis div:nth-child(2) {
|
||||
left: 6px;
|
||||
animation: lds-ellipsis2 0.6s infinite;
|
||||
}
|
||||
.lds-ellipsis div:nth-child(3) {
|
||||
left: 26px;
|
||||
animation: lds-ellipsis2 0.6s infinite;
|
||||
}
|
||||
.lds-ellipsis div:nth-child(4) {
|
||||
left: 45px;
|
||||
animation: lds-ellipsis3 0.6s infinite;
|
||||
}
|
||||
@keyframes lds-ellipsis1 {
|
||||
0% {
|
||||
transform: scale(0);
|
||||
}
|
||||
100% {
|
||||
transform: scale(1);
|
||||
}
|
||||
}
|
||||
@keyframes lds-ellipsis3 {
|
||||
0% {
|
||||
transform: scale(1);
|
||||
}
|
||||
100% {
|
||||
transform: scale(0);
|
||||
}
|
||||
}
|
||||
@keyframes lds-ellipsis2 {
|
||||
0% {
|
||||
transform: translate(0, 0);
|
||||
}
|
||||
100% {
|
||||
transform: translate(19px, 0);
|
||||
}
|
||||
}
|
||||
|
||||
/* Custom SnackBar */
|
||||
|
||||
#snackbar {
|
||||
visibility: hidden;
|
||||
background-color: #333;
|
||||
color: #fff;
|
||||
text-align: right;
|
||||
border-radius: 4px;
|
||||
padding: 20px 40px;
|
||||
position: fixed;
|
||||
z-index: 1;
|
||||
right: 30px;
|
||||
bottom: 30px;
|
||||
margin-left: 30px;
|
||||
font-size: 17px;
|
||||
}
|
||||
|
||||
#snackbar.show {
|
||||
visibility: visible;
|
||||
-webkit-animation: fadein 0.5s, fadeout 0.5s 2.5s;
|
||||
animation: fadein 0.5s, fadeout 0.5s 2.5s;
|
||||
}
|
||||
|
||||
@-webkit-keyframes fadein {
|
||||
from {bottom: 0; opacity: 0;}
|
||||
to {bottom: 30px; opacity: 1;}
|
||||
}
|
||||
|
||||
@keyframes fadein {
|
||||
from {bottom: 0; opacity: 0;}
|
||||
to {bottom: 30px; opacity: 1;}
|
||||
}
|
||||
|
||||
@-webkit-keyframes fadeout {
|
||||
from {bottom: 30px; opacity: 1;}
|
||||
to {bottom: 0; opacity: 0;}
|
||||
}
|
||||
|
||||
@keyframes fadeout {
|
||||
from {bottom: 30px; opacity: 1;}
|
||||
to {bottom: 0; opacity: 0;}
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 6.6 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 3.3 KiB |
@@ -0,0 +1,31 @@
|
||||
//Admin JS
|
||||
|
||||
$("#addDomain").click(function(){
|
||||
$("#addDomain").before('<input class="inner-fields" type="text" name="domain[]" placeholder="Enter Domain">');
|
||||
});
|
||||
|
||||
$("#addForbidden").click(function(){
|
||||
$("#addForbidden").before('<input class="inner-fields" type="text" name="forbidemail[]" placeholder="Enter Forbiden TMail">');
|
||||
});
|
||||
|
||||
$("#addLinks").click(function(){
|
||||
$("#addLinks").before('<input class="small-inner-fields" type="text" name="linksIcon[]" placeholder="Enter Icon"><input class="small-inner-fields" type="text" name="linksTitle[]" placeholder="Enter Title"><input class="big-inner-fields" type="text" name="linksValue[]" placeholder="Enter Link">');
|
||||
});
|
||||
|
||||
$("#test-connection").click(function(){
|
||||
$("#test-result").html("<span style='color: #006ECE'>Checking...</span>");
|
||||
var host = document.getElementsByName("host")[0].value;
|
||||
var user = document.getElementsByName("user")[0].value;
|
||||
var pass = document.getElementsByName("pass")[0].value;
|
||||
$.get("admin.php", {
|
||||
host: host,
|
||||
user: user,
|
||||
pass: pass
|
||||
}).done(function( data ) {
|
||||
if(data === 'FAIL') {
|
||||
$("#test-result").html("<span style='color: #DB0015'>Connection Failed</span>");
|
||||
} else {
|
||||
$("#test-result").html("<span style='color: #006e2e'>Connection Passed</span>");
|
||||
}
|
||||
});
|
||||
});
|
||||
Vendored
+7
File diff suppressed because one or more lines are too long
Vendored
+2
File diff suppressed because one or more lines are too long
Vendored
+5
File diff suppressed because one or more lines are too long
@@ -0,0 +1,418 @@
|
||||
$(document).ready(function () {
|
||||
$('[data-toggle="tooltip"]').tooltip();
|
||||
deleteAttachments();
|
||||
});
|
||||
|
||||
const scrollHome = new PerfectScrollbar('.tmail-homepage');
|
||||
const scrollSidebar = new PerfectScrollbar('.tmail-sidebar');
|
||||
const scrollTmailList = new PerfectScrollbar('.tmail-list');
|
||||
const scrollTmailBody = new PerfectScrollbar('.tmail-email-body');
|
||||
const scrollTmailListSection = new PerfectScrollbar('#tmail-switcher-list-ul');
|
||||
|
||||
var isEncode;
|
||||
var address = (hasher.getURL()).replace((hasher.getBaseURL()), '');
|
||||
address = address.replace('#/', '');
|
||||
if (address) {
|
||||
$.get("actions.php", {
|
||||
action: 'encode'
|
||||
}).done(function (data) {
|
||||
isEncode = data;
|
||||
if(address.indexOf("@") != -1) {
|
||||
createUser(address);
|
||||
} else {
|
||||
createUser(atob(address));
|
||||
}
|
||||
});
|
||||
} else {
|
||||
$(".tmail-loader").fadeOut(200, function(){
|
||||
$(".tmail-main-inner").delay(400).fadeIn();
|
||||
scrollHome.update();
|
||||
$.get("actions.php", {
|
||||
action: 'encode'
|
||||
}).done(function (data) {
|
||||
isEncode = data;
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
var refreshRate;
|
||||
$.get("actions.php", {
|
||||
action: 'refreshRate'
|
||||
}).done(function (data) {
|
||||
refreshRate = parseInt(data);
|
||||
});
|
||||
|
||||
var pushNotifications;
|
||||
$.get("actions.php", {
|
||||
action: 'pushNotifications'
|
||||
}).done(function( data ) {
|
||||
if(data === 'yes') {
|
||||
pushNotifications = true;
|
||||
} else {
|
||||
pushNotifications = false;
|
||||
}
|
||||
});
|
||||
|
||||
var t;
|
||||
var currentRefreshRate;
|
||||
var intialText = $("#reloading-line").html();
|
||||
|
||||
function updateTimer() {
|
||||
if(currentRefreshRate == refreshRate) {
|
||||
$("#reloading-line").fadeOut(200, function(){
|
||||
$("#reloading-line").html(intialText);
|
||||
});
|
||||
}
|
||||
$("#reloading-msg").html("<strong>"+(currentRefreshRate)+"</strong>");
|
||||
if(currentRefreshRate == refreshRate) {
|
||||
$("#reloading-line").fadeIn(200);
|
||||
}
|
||||
if(currentRefreshRate == 0) {
|
||||
retriveNewMails();
|
||||
clearInterval(t);
|
||||
$("#reloading-line").fadeOut(200, function(){
|
||||
$("#reloading-line").html('<i class="fa fa-spinner fa-spin" aria-hidden="true"></i>');
|
||||
$("#reloading-line").delay(100).fadeIn(200);
|
||||
});
|
||||
|
||||
}
|
||||
currentRefreshRate = currentRefreshRate - 1;
|
||||
}
|
||||
|
||||
/*
|
||||
* Check if enter key is pressed
|
||||
*/
|
||||
function checkEnter(e, item) {
|
||||
var code = (e.keyCode ? e.keyCode : e.which);
|
||||
if (code === 13) {
|
||||
setNewID();
|
||||
}
|
||||
}
|
||||
/*
|
||||
* Set a New ID
|
||||
*/
|
||||
function setNewID() {
|
||||
var email = document.getElementsByName("email")[0].value;
|
||||
var domain = document.getElementsByName("domain")[0].value;
|
||||
var fullEmail = email + domain;
|
||||
createUser(fullEmail);
|
||||
}
|
||||
/*
|
||||
* Create a new address for user. If address is already specified it checks if that is valid
|
||||
*/
|
||||
function createUser(address) {
|
||||
if($(window).width() < 1000) {
|
||||
$(".tmail-mobile-menu").fadeIn(100);
|
||||
$(".tmail-sidebar").hide(100);
|
||||
}
|
||||
$(".tmail-homepage").fadeOut(100);
|
||||
$(".tmail-body").fadeOut(100);
|
||||
$(".tmail-main").delay(100).fadeIn();
|
||||
$(".tmail-loader").delay(100).fadeIn();
|
||||
$.get("user.php", {
|
||||
user: address
|
||||
}).done(function (data) {
|
||||
address = data;
|
||||
$("#current-tmail-id").html(address);
|
||||
if(isEncode === "yes") {
|
||||
var newAddress = btoa(address);
|
||||
hasher.setHash(newAddress);
|
||||
} else {
|
||||
hasher.setHash(address);
|
||||
}
|
||||
if (!$("#tmail-switcher-list-ul:contains('"+address+"')").length) {
|
||||
var tagToAdd = "<li onclick=\"createUser('"+address+"')\"><a>"+address+"</a></li>";
|
||||
$("#tmail-switcher-list-ul").append(tagToAdd);
|
||||
}
|
||||
$.get("mail.php", function (data) {
|
||||
$("#tmail-data").html('');
|
||||
if (data) {
|
||||
var splitData = data.split('<-----TMAILNEXTMAIL----->');
|
||||
$.each(splitData, function (index, value) {
|
||||
value = $.trim(value);
|
||||
if (value.length > 0) {
|
||||
var internalSplitData = value.split('<-----TMAILCHOPPER----->');
|
||||
$("#tmail-data").append(internalSplitData[0]);
|
||||
$(".tmail-email-body").append(internalSplitData[1]);
|
||||
}
|
||||
});
|
||||
}
|
||||
checkEmptyEmailList();
|
||||
retriveNewMails();
|
||||
$(".tmail-main").fadeOut()
|
||||
$(".tmail-body").delay(400).fadeIn();
|
||||
saveEMails();
|
||||
$(".tmail-email-body a").attr("target","_blank");
|
||||
scrollTmailList.update();
|
||||
scrollTmailBody.update();
|
||||
scrollSidebar.update();
|
||||
$(".tmail-email-content-li").fadeOut(100);
|
||||
$(".tmail-email-body-placeholder").delay(500).fadeIn();
|
||||
});
|
||||
});
|
||||
}
|
||||
/*
|
||||
* Checks for new emails at regular interval. setTimeout calls function every 1000 ms (1 Second)
|
||||
*/
|
||||
function retriveNewMails() {
|
||||
$.get("mail.php?unseen=1", function (data) {
|
||||
if (data.trim() === "DIE") {
|
||||
location.reload();
|
||||
return;
|
||||
} else {
|
||||
if (data) {
|
||||
if(data.indexOf("Fatal error: Uncaught exception 'PhpImap") != -1){
|
||||
location.reload(true);
|
||||
}
|
||||
var splitData = data.split('<-----TMAILNEXTMAIL----->');
|
||||
$.each(splitData, function (index, value) {
|
||||
if (value.trim().length > 0) {
|
||||
var internalSplitData = value.split('<-----TMAILCHOPPER----->');
|
||||
$("#tmail-data").prepend(internalSplitData[0]);
|
||||
$(".tmail-email-body").prepend(internalSplitData[1]);
|
||||
alignElements();
|
||||
}
|
||||
});
|
||||
checkEmptyEmailList();
|
||||
$(".tmail-email-body a").attr("target","_blank");
|
||||
notifyUser("You got some new EMails",true);
|
||||
}
|
||||
currentRefreshRate = refreshRate;
|
||||
t = setInterval(updateTimer, 1000);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function alignElements() {
|
||||
var docWidth = $(window).width();
|
||||
if (docWidth < 1000) {
|
||||
$(".tmail-sidebar").fadeOut(100);
|
||||
$(".tmail-email-body").fadeOut(100);
|
||||
} else {
|
||||
var sidebarWidth = $(".tmail-sidebar").width();
|
||||
if (sidebarWidth < 200) {
|
||||
$(".tmail-sidebar").fadeOut(100);
|
||||
if ($(".tmail-email-body").hasClass("col-lg-6")) {
|
||||
$(".tmail-email-body").removeClass("col-lg-6").addClass("col-lg-8");
|
||||
}
|
||||
} else {
|
||||
$(".tmail-sidebar").show();
|
||||
if ($(".tmail-email-body").hasClass("col-lg-8")) {
|
||||
$(".tmail-email-body").removeClass("col-lg-8").addClass("col-lg-6");
|
||||
}
|
||||
}
|
||||
var listWidth = $(".tmail-list").width();
|
||||
if (listWidth < 306) {
|
||||
$(".tmail-email-body").fadeOut(100);
|
||||
} else {
|
||||
$(".tmail-email-body").show();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$(window).resize(function () {
|
||||
alignElements();
|
||||
});
|
||||
|
||||
$(".tmail-list-ul").click(function () {
|
||||
var docWidth = $(window).width();
|
||||
if (docWidth < 1000) {
|
||||
$(".tmail-list").fadeOut(100);
|
||||
$(".tmail-email-body").fadeIn();
|
||||
$(".tmail-mobile-menu i.fa-bars").fadeOut(100);
|
||||
$(".tmail-mobile-menu i.fa-chevron-left").delay(100).fadeIn();
|
||||
}
|
||||
$(".tmail-email-body-placeholder").fadeOut(100);
|
||||
});
|
||||
|
||||
$(".tmail-mobile-menu i.fa-chevron-left").click(function () {
|
||||
$(".tmail-list").fadeIn();
|
||||
$(".tmail-email-body").fadeOut(100);
|
||||
$(".tmail-mobile-menu i.fa-chevron-left").fadeOut(100);
|
||||
$(".tmail-mobile-menu i.fa-bars").delay(100).fadeIn();
|
||||
$(".tmail-email-body").css("z-index","-1");
|
||||
});
|
||||
|
||||
$(".tmail-mobile-menu i.fa-bars").click(function () {
|
||||
$(".tmail-list").fadeOut(100);
|
||||
$(".tmail-sidebar").fadeIn();
|
||||
$(".tmail-mobile-menu i.fa-bars").fadeOut(100);
|
||||
$(".tmail-mobile-menu i.fa-times").delay(100).fadeIn();
|
||||
});
|
||||
|
||||
$(".tmail-mobile-menu i.fa-times").click(function () {
|
||||
$(".tmail-list").fadeIn();
|
||||
$(".tmail-sidebar").fadeOut(100);
|
||||
$(".tmail-mobile-menu i.fa-times").fadeOut(100);
|
||||
$(".tmail-mobile-menu i.fa-bars").delay(100).fadeIn();
|
||||
});
|
||||
|
||||
/*
|
||||
* To show TMail Complete EMail
|
||||
*/
|
||||
function showTMailBody(mailContentID) {
|
||||
$(".tmail-email-content-li").fadeOut(100);
|
||||
$("#tmail-email-body-content-" + mailContentID).fadeToggle();
|
||||
$(".tmail-list-ul li").removeClass("tmail-list-active");
|
||||
$("#tmail-email-list-" + mailContentID).addClass("tmail-list-active");
|
||||
$(".tmail-email-body").css("z-index","1");
|
||||
}
|
||||
|
||||
/*
|
||||
* Simple click to copy to clipboard function
|
||||
*/
|
||||
function copyToClipboard(element) {
|
||||
var $temp = $("<input>");
|
||||
$("body").append($temp);
|
||||
$temp.val($(element).text()).select();
|
||||
document.execCommand("copy");
|
||||
$temp.remove();
|
||||
notifyUser("EMail ID copied to clipboard");
|
||||
}
|
||||
|
||||
/*
|
||||
*
|
||||
*/
|
||||
function notifyUser(message, sendPush = false) {
|
||||
var x = document.getElementById("snackbar");
|
||||
x.innerHTML = message;
|
||||
x.className = "show";
|
||||
setTimeout(function () {
|
||||
x.className = x.className.replace("show", "");
|
||||
}, 3000);
|
||||
if(pushNotifications && sendPush) {
|
||||
if (Notification.permission === "granted") {
|
||||
var notification = new Notification(message);
|
||||
} else if (Notification.permission !== 'denied') {
|
||||
Notification.requestPermission(function(permission) {
|
||||
if (permission === "granted") {
|
||||
var notification = new Notification(message);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Search Bar
|
||||
*/
|
||||
(function () {
|
||||
var searchTerm, panelContainerId;
|
||||
$.expr[':'].containsCaseInsensitive = function (n, i, m) {
|
||||
return jQuery(n).text().toUpperCase().indexOf(m[3].toUpperCase()) >= 0;
|
||||
};
|
||||
$('#tmail-search').on('change keyup paste click', function () {
|
||||
searchTerm = $(this).val();
|
||||
$('#tmail-data > .tmail-email-list-li').each(function () {
|
||||
panelContainerId = '#' + $(this).attr('id');
|
||||
$(panelContainerId + ':not(:containsCaseInsensitive(' + searchTerm + '))').fadeOut(100);
|
||||
$(panelContainerId + ':containsCaseInsensitive(' + searchTerm + ')').show();
|
||||
});
|
||||
});
|
||||
}());
|
||||
|
||||
/*
|
||||
* Function for saving email in Cookie
|
||||
*/
|
||||
function saveEMails() {
|
||||
$.get("actions.php?action=saveEMails", function (data) {
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
/*
|
||||
* Function for clearing email in Cookie
|
||||
*/
|
||||
function clearEMails() {
|
||||
$.get("actions.php?action=clearEMails", function (data) {
|
||||
location.reload();
|
||||
});
|
||||
}
|
||||
|
||||
/*
|
||||
* Function to check if list is empty
|
||||
*/
|
||||
function checkEmptyEmailList() {
|
||||
var emptyCheck = $('#tmail-data').html().trim();
|
||||
if (emptyCheck === "") {
|
||||
$(".tmail-list-placeholder").fadeIn();
|
||||
} else {
|
||||
$(".tmail-list-placeholder").fadeOut();
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Function which enables user to download any email
|
||||
* @param mailid - Identify the mail to download
|
||||
*/
|
||||
function downloadMail(mailid) {
|
||||
$.get("actions.php", {
|
||||
action: 'download',
|
||||
id: mailid
|
||||
}).done(function( data ) {
|
||||
window.location.href = data;
|
||||
});
|
||||
notifyUser("File Ready! Please hit okay / save if you got a popup");
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
* Function to delete email
|
||||
* @param mailid - Identify the mail to delete
|
||||
*/
|
||||
function deleteMail(mailid) {
|
||||
$.get("actions.php", {
|
||||
action: 'delete',
|
||||
id: mailid
|
||||
});
|
||||
var mailLocator = "#tmail-email-list-".concat(mailid);
|
||||
$(mailLocator).hide( "400", function() {
|
||||
$( this ).remove();
|
||||
$(".tmail-email-content-li").fadeOut(100);
|
||||
$(".tmail-email-body-placeholder").delay(500).fadeIn();
|
||||
$("#tmail-email-body-content-"+mailid).delay(500).remove();
|
||||
checkEmptyEmailList();
|
||||
});
|
||||
notifyUser("TMail Deleted!");
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
* Function to change language
|
||||
*/
|
||||
function setLang() {
|
||||
var setLang = document.getElementsByName("lang")[0].value;
|
||||
$(".tmail-homepage").fadeOut();
|
||||
$(".tmail-body").fadeOut();
|
||||
$(".tmail-main").delay(400).fadeIn();
|
||||
if ( setLang === "hi" ) {
|
||||
$(".inner-loader span").html("रुकिए");
|
||||
} else if ( setLang === "fr" ) {
|
||||
$(".inner-loader span").html("Chargement");
|
||||
} else if ( setLang === "ch" ) {
|
||||
$(".inner-loader span").html("载入中");
|
||||
} else if ( setLang === "ar" ) {
|
||||
$(".inner-loader span").html("جار التحميل");
|
||||
} else if ( setLang === "sp" ) {
|
||||
$(".inner-loader span").html("Cargando");
|
||||
} else if ( setLang === "ru" ) {
|
||||
$(".inner-loader span").html("загрузка");
|
||||
} else if ( setLang === "de" ) {
|
||||
$(".inner-loader span").html("Bezig met laden");
|
||||
} else if ( setLang === "pl" ) {
|
||||
$(".inner-loader span").html("Ładuję");
|
||||
} else {
|
||||
$(".inner-loader span").html("Loading");
|
||||
}
|
||||
$(".tmail-loader").delay(600).fadeIn();
|
||||
$.get( "actions.php", { action: "changeLang", lang: setLang } ).done(function( data ) { location.reload(); });
|
||||
}
|
||||
|
||||
/*
|
||||
* Deleting old attachments
|
||||
*/
|
||||
function deleteAttachments() {
|
||||
$.get("actions.php", {
|
||||
action: 'deleteOldAttachments'
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user