Compare commits

..

No commits in common. "2020" and "master" have entirely different histories.
2020 ... master

1786 changed files with 702401 additions and 41 deletions

29
.gitignore vendored 100644
View File

@ -0,0 +1,29 @@
HELP.md
/target/
!.mvn/wrapper/maven-wrapper.jar
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
/build/
### VS Code ###
.vscode/

View File

@ -0,0 +1,114 @@
/*
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
*/
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URL;
import java.nio.channels.Channels;
import java.nio.channels.ReadableByteChannel;
import java.util.Properties;
public class MavenWrapperDownloader {
/**
* Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
*/
private static final String DEFAULT_DOWNLOAD_URL =
"https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar";
/**
* Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
* use instead of the default one.
*/
private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
".mvn/wrapper/maven-wrapper.properties";
/**
* Path where the maven-wrapper.jar will be saved to.
*/
private static final String MAVEN_WRAPPER_JAR_PATH =
".mvn/wrapper/maven-wrapper.jar";
/**
* Name of the property which should be used to override the default download url for the wrapper.
*/
private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
public static void main(String args[]) {
System.out.println("- Downloader started");
File baseDirectory = new File(args[0]);
System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
// If the maven-wrapper.properties exists, read it and check if it contains a custom
// wrapperUrl parameter.
File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
String url = DEFAULT_DOWNLOAD_URL;
if(mavenWrapperPropertyFile.exists()) {
FileInputStream mavenWrapperPropertyFileInputStream = null;
try {
mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
Properties mavenWrapperProperties = new Properties();
mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
} catch (IOException e) {
System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
} finally {
try {
if(mavenWrapperPropertyFileInputStream != null) {
mavenWrapperPropertyFileInputStream.close();
}
} catch (IOException e) {
// Ignore ...
}
}
}
System.out.println("- Downloading from: : " + url);
File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
if(!outputFile.getParentFile().exists()) {
if(!outputFile.getParentFile().mkdirs()) {
System.out.println(
"- ERROR creating output direcrory '" + outputFile.getParentFile().getAbsolutePath() + "'");
}
}
System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
try {
downloadFileFromURL(url, outputFile);
System.out.println("Done");
System.exit(0);
} catch (Throwable e) {
System.out.println("- Error downloading");
e.printStackTrace();
System.exit(1);
}
}
private static void downloadFileFromURL(String urlString, File destination) throws Exception {
URL website = new URL(urlString);
ReadableByteChannel rbc;
rbc = Channels.newChannel(website.openStream());
FileOutputStream fos = new FileOutputStream(destination);
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
fos.close();
rbc.close();
}
}

BIN
.mvn/wrapper/maven-wrapper.jar vendored 100644

Binary file not shown.

View File

@ -0,0 +1 @@
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip

View File

@ -1,40 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>i_framework_lite_2020</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.wst.common.project.facet.core.builder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.springframework.ide.eclipse.core.springbuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.springframework.ide.eclipse.boot.validation.springbootbuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.springframework.ide.eclipse.core.springnature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
</natures>
</projectDescription>

1
.svn/entries 100644
View File

@ -0,0 +1 @@
12

1
.svn/format 100644
View File

@ -0,0 +1 @@
12

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,98 @@
package kr.co.i4way.genesys.config;
import java.util.Collection;
import com.genesyslab.platform.applicationblocks.com.ConfigException;
import com.genesyslab.platform.applicationblocks.com.IConfService;
import com.genesyslab.platform.applicationblocks.com.objects.CfgAgentGroup;
import com.genesyslab.platform.applicationblocks.com.objects.CfgPerson;
import com.genesyslab.platform.applicationblocks.com.queries.CfgAgentGroupQuery;
import com.genesyslab.platform.applicationblocks.com.queries.CfgPersonQuery;
public class AgentGroup {
public AgentGroup(){
}
/**
* AgentGroup을 조회한다.
* @param iTenantDBID
* @param service
* @return
* @throws ConfigException
* @throws InterruptedException
*/
public Collection<CfgAgentGroup> SelectAgentGroup(
int iTenantDBID,
final IConfService service)
throws ConfigException, InterruptedException {
// Read configuration objects:
CfgAgentGroupQuery agentgroupquery = new CfgAgentGroupQuery();
agentgroupquery.setTenantDbid(iTenantDBID);
Collection<CfgAgentGroup> agentgroups = service.retrieveMultipleObjects(CfgAgentGroup.class,
agentgroupquery);
return agentgroups;
}
/**
* AgentGroup을 조회한다.
* @param iTenantDBID
* @param sEmployeeId
* @param service
* @return
* @throws ConfigException
* @throws InterruptedException
*/
public Collection<CfgAgentGroup> SelectAgentGroup(
int iTenantDBID,
String sGroupName,
final IConfService service)
throws ConfigException, InterruptedException {
// Read configuration objects:
CfgAgentGroupQuery agentgroupquery = new CfgAgentGroupQuery();
agentgroupquery.setTenantDbid(iTenantDBID);
agentgroupquery.setName(sGroupName);
Collection<CfgAgentGroup> agentgroups = service.retrieveMultipleObjects(CfgAgentGroup.class,
agentgroupquery);
return agentgroups;
}
public CfgAgentGroup SelectAgentGroup(
int iTenantDBID,
int iDbid,
final IConfService service)
throws ConfigException, InterruptedException {
// Read configuration objects:
CfgAgentGroup rtnAgentGroup = null;
CfgAgentGroupQuery agentgroupquery = new CfgAgentGroupQuery();
agentgroupquery.setTenantDbid(iTenantDBID);
agentgroupquery.setDbid(iDbid);
Collection<CfgAgentGroup> agentgroups = service.retrieveMultipleObjects(CfgAgentGroup.class,
agentgroupquery);
for(CfgAgentGroup agentgroup : agentgroups){
rtnAgentGroup = agentgroup;
}
return rtnAgentGroup;
}
public Collection<CfgPerson> SelectPersonInGroup(
int iTenantDBID,
int iGroupDBID,
final IConfService service)
throws ConfigException, InterruptedException {
// Read configuration objects:
CfgPersonQuery personquery = new CfgPersonQuery();
personquery.setTenantDbid(iTenantDBID);
personquery.setGroupDbid(iGroupDBID);
Collection<CfgPerson> persons = service.retrieveMultipleObjects(CfgPerson.class,
personquery);
return persons;
}
}

View File

@ -0,0 +1,721 @@
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('jquery')) :
typeof define === 'function' && define.amd ? define(['jquery'], factory) :
(global = global || self, factory(global.jQuery));
}(this, function ($) { 'use strict';
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
function createCommonjsModule(fn, module) {
return module = { exports: {} }, fn(module, module.exports), module.exports;
}
var O = 'object';
var check = function (it) {
return it && it.Math == Math && it;
};
// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
var global_1 =
// eslint-disable-next-line no-undef
check(typeof globalThis == O && globalThis) ||
check(typeof window == O && window) ||
check(typeof self == O && self) ||
check(typeof commonjsGlobal == O && commonjsGlobal) ||
// eslint-disable-next-line no-new-func
Function('return this')();
var fails = function (exec) {
try {
return !!exec();
} catch (error) {
return true;
}
};
// Thank's IE8 for his funny defineProperty
var descriptors = !fails(function () {
return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
});
var nativePropertyIsEnumerable = {}.propertyIsEnumerable;
var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
// Nashorn ~ JDK8 bug
var NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);
// `Object.prototype.propertyIsEnumerable` method implementation
// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable
var f = NASHORN_BUG ? function propertyIsEnumerable(V) {
var descriptor = getOwnPropertyDescriptor(this, V);
return !!descriptor && descriptor.enumerable;
} : nativePropertyIsEnumerable;
var objectPropertyIsEnumerable = {
f: f
};
var createPropertyDescriptor = function (bitmap, value) {
return {
enumerable: !(bitmap & 1),
configurable: !(bitmap & 2),
writable: !(bitmap & 4),
value: value
};
};
var toString = {}.toString;
var classofRaw = function (it) {
return toString.call(it).slice(8, -1);
};
var split = ''.split;
// fallback for non-array-like ES3 and non-enumerable old V8 strings
var indexedObject = fails(function () {
// throws an error in rhino, see https://github.com/mozilla/rhino/issues/346
// eslint-disable-next-line no-prototype-builtins
return !Object('z').propertyIsEnumerable(0);
}) ? function (it) {
return classofRaw(it) == 'String' ? split.call(it, '') : Object(it);
} : Object;
// `RequireObjectCoercible` abstract operation
// https://tc39.github.io/ecma262/#sec-requireobjectcoercible
var requireObjectCoercible = function (it) {
if (it == undefined) throw TypeError("Can't call method on " + it);
return it;
};
// toObject with fallback for non-array-like ES3 strings
var toIndexedObject = function (it) {
return indexedObject(requireObjectCoercible(it));
};
var isObject = function (it) {
return typeof it === 'object' ? it !== null : typeof it === 'function';
};
// `ToPrimitive` abstract operation
// https://tc39.github.io/ecma262/#sec-toprimitive
// instead of the ES6 spec version, we didn't implement @@toPrimitive case
// and the second argument - flag - preferred type is a string
var toPrimitive = function (input, PREFERRED_STRING) {
if (!isObject(input)) return input;
var fn, val;
if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;
if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
throw TypeError("Can't convert object to primitive value");
};
var hasOwnProperty = {}.hasOwnProperty;
var has = function (it, key) {
return hasOwnProperty.call(it, key);
};
var document = global_1.document;
// typeof document.createElement is 'object' in old IE
var EXISTS = isObject(document) && isObject(document.createElement);
var documentCreateElement = function (it) {
return EXISTS ? document.createElement(it) : {};
};
// Thank's IE8 for his funny defineProperty
var ie8DomDefine = !descriptors && !fails(function () {
return Object.defineProperty(documentCreateElement('div'), 'a', {
get: function () { return 7; }
}).a != 7;
});
var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
// `Object.getOwnPropertyDescriptor` method
// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor
var f$1 = descriptors ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {
O = toIndexedObject(O);
P = toPrimitive(P, true);
if (ie8DomDefine) try {
return nativeGetOwnPropertyDescriptor(O, P);
} catch (error) { /* empty */ }
if (has(O, P)) return createPropertyDescriptor(!objectPropertyIsEnumerable.f.call(O, P), O[P]);
};
var objectGetOwnPropertyDescriptor = {
f: f$1
};
var anObject = function (it) {
if (!isObject(it)) {
throw TypeError(String(it) + ' is not an object');
} return it;
};
var nativeDefineProperty = Object.defineProperty;
// `Object.defineProperty` method
// https://tc39.github.io/ecma262/#sec-object.defineproperty
var f$2 = descriptors ? nativeDefineProperty : function defineProperty(O, P, Attributes) {
anObject(O);
P = toPrimitive(P, true);
anObject(Attributes);
if (ie8DomDefine) try {
return nativeDefineProperty(O, P, Attributes);
} catch (error) { /* empty */ }
if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');
if ('value' in Attributes) O[P] = Attributes.value;
return O;
};
var objectDefineProperty = {
f: f$2
};
var hide = descriptors ? function (object, key, value) {
return objectDefineProperty.f(object, key, createPropertyDescriptor(1, value));
} : function (object, key, value) {
object[key] = value;
return object;
};
var setGlobal = function (key, value) {
try {
hide(global_1, key, value);
} catch (error) {
global_1[key] = value;
} return value;
};
var shared = createCommonjsModule(function (module) {
var SHARED = '__core-js_shared__';
var store = global_1[SHARED] || setGlobal(SHARED, {});
(module.exports = function (key, value) {
return store[key] || (store[key] = value !== undefined ? value : {});
})('versions', []).push({
version: '3.1.3',
mode: 'global',
copyright: '© 2019 Denis Pushkarev (zloirock.ru)'
});
});
var functionToString = shared('native-function-to-string', Function.toString);
var WeakMap = global_1.WeakMap;
var nativeWeakMap = typeof WeakMap === 'function' && /native code/.test(functionToString.call(WeakMap));
var id = 0;
var postfix = Math.random();
var uid = function (key) {
return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);
};
var keys = shared('keys');
var sharedKey = function (key) {
return keys[key] || (keys[key] = uid(key));
};
var hiddenKeys = {};
var WeakMap$1 = global_1.WeakMap;
var set, get, has$1;
var enforce = function (it) {
return has$1(it) ? get(it) : set(it, {});
};
var getterFor = function (TYPE) {
return function (it) {
var state;
if (!isObject(it) || (state = get(it)).type !== TYPE) {
throw TypeError('Incompatible receiver, ' + TYPE + ' required');
} return state;
};
};
if (nativeWeakMap) {
var store = new WeakMap$1();
var wmget = store.get;
var wmhas = store.has;
var wmset = store.set;
set = function (it, metadata) {
wmset.call(store, it, metadata);
return metadata;
};
get = function (it) {
return wmget.call(store, it) || {};
};
has$1 = function (it) {
return wmhas.call(store, it);
};
} else {
var STATE = sharedKey('state');
hiddenKeys[STATE] = true;
set = function (it, metadata) {
hide(it, STATE, metadata);
return metadata;
};
get = function (it) {
return has(it, STATE) ? it[STATE] : {};
};
has$1 = function (it) {
return has(it, STATE);
};
}
var internalState = {
set: set,
get: get,
has: has$1,
enforce: enforce,
getterFor: getterFor
};
var redefine = createCommonjsModule(function (module) {
var getInternalState = internalState.get;
var enforceInternalState = internalState.enforce;
var TEMPLATE = String(functionToString).split('toString');
shared('inspectSource', function (it) {
return functionToString.call(it);
});
(module.exports = function (O, key, value, options) {
var unsafe = options ? !!options.unsafe : false;
var simple = options ? !!options.enumerable : false;
var noTargetGet = options ? !!options.noTargetGet : false;
if (typeof value == 'function') {
if (typeof key == 'string' && !has(value, 'name')) hide(value, 'name', key);
enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');
}
if (O === global_1) {
if (simple) O[key] = value;
else setGlobal(key, value);
return;
} else if (!unsafe) {
delete O[key];
} else if (!noTargetGet && O[key]) {
simple = true;
}
if (simple) O[key] = value;
else hide(O, key, value);
// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
})(Function.prototype, 'toString', function toString() {
return typeof this == 'function' && getInternalState(this).source || functionToString.call(this);
});
});
var path = global_1;
var aFunction = function (variable) {
return typeof variable == 'function' ? variable : undefined;
};
var getBuiltIn = function (namespace, method) {
return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global_1[namespace])
: path[namespace] && path[namespace][method] || global_1[namespace] && global_1[namespace][method];
};
var ceil = Math.ceil;
var floor = Math.floor;
// `ToInteger` abstract operation
// https://tc39.github.io/ecma262/#sec-tointeger
var toInteger = function (argument) {
return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);
};
var min = Math.min;
// `ToLength` abstract operation
// https://tc39.github.io/ecma262/#sec-tolength
var toLength = function (argument) {
return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991
};
var max = Math.max;
var min$1 = Math.min;
// Helper for a popular repeating case of the spec:
// Let integer be ? ToInteger(index).
// If integer < 0, let result be max((length + integer), 0); else let result be min(length, length).
var toAbsoluteIndex = function (index, length) {
var integer = toInteger(index);
return integer < 0 ? max(integer + length, 0) : min$1(integer, length);
};
// `Array.prototype.{ indexOf, includes }` methods implementation
var createMethod = function (IS_INCLUDES) {
return function ($this, el, fromIndex) {
var O = toIndexedObject($this);
var length = toLength(O.length);
var index = toAbsoluteIndex(fromIndex, length);
var value;
// Array#includes uses SameValueZero equality algorithm
// eslint-disable-next-line no-self-compare
if (IS_INCLUDES && el != el) while (length > index) {
value = O[index++];
// eslint-disable-next-line no-self-compare
if (value != value) return true;
// Array#indexOf ignores holes, Array#includes - not
} else for (;length > index; index++) {
if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;
} return !IS_INCLUDES && -1;
};
};
var arrayIncludes = {
// `Array.prototype.includes` method
// https://tc39.github.io/ecma262/#sec-array.prototype.includes
includes: createMethod(true),
// `Array.prototype.indexOf` method
// https://tc39.github.io/ecma262/#sec-array.prototype.indexof
indexOf: createMethod(false)
};
var indexOf = arrayIncludes.indexOf;
var objectKeysInternal = function (object, names) {
var O = toIndexedObject(object);
var i = 0;
var result = [];
var key;
for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);
// Don't enum bug & hidden keys
while (names.length > i) if (has(O, key = names[i++])) {
~indexOf(result, key) || result.push(key);
}
return result;
};
// IE8- don't enum bug keys
var enumBugKeys = [
'constructor',
'hasOwnProperty',
'isPrototypeOf',
'propertyIsEnumerable',
'toLocaleString',
'toString',
'valueOf'
];
var hiddenKeys$1 = enumBugKeys.concat('length', 'prototype');
// `Object.getOwnPropertyNames` method
// https://tc39.github.io/ecma262/#sec-object.getownpropertynames
var f$3 = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
return objectKeysInternal(O, hiddenKeys$1);
};
var objectGetOwnPropertyNames = {
f: f$3
};
var f$4 = Object.getOwnPropertySymbols;
var objectGetOwnPropertySymbols = {
f: f$4
};
// all object keys, includes non-enumerable and symbols
var ownKeys = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {
var keys = objectGetOwnPropertyNames.f(anObject(it));
var getOwnPropertySymbols = objectGetOwnPropertySymbols.f;
return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;
};
var copyConstructorProperties = function (target, source) {
var keys = ownKeys(source);
var defineProperty = objectDefineProperty.f;
var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f;
for (var i = 0; i < keys.length; i++) {
var key = keys[i];
if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));
}
};
var replacement = /#|\.prototype\./;
var isForced = function (feature, detection) {
var value = data[normalize(feature)];
return value == POLYFILL ? true
: value == NATIVE ? false
: typeof detection == 'function' ? fails(detection)
: !!detection;
};
var normalize = isForced.normalize = function (string) {
return String(string).replace(replacement, '.').toLowerCase();
};
var data = isForced.data = {};
var NATIVE = isForced.NATIVE = 'N';
var POLYFILL = isForced.POLYFILL = 'P';
var isForced_1 = isForced;
var getOwnPropertyDescriptor$1 = objectGetOwnPropertyDescriptor.f;
/*
options.target - name of the target object
options.global - target is the global object
options.stat - export as static methods of target
options.proto - export as prototype methods of target
options.real - real prototype method for the `pure` version
options.forced - export even if the native feature is available
options.bind - bind methods to the target, required for the `pure` version
options.wrap - wrap constructors to preventing global pollution, required for the `pure` version
options.unsafe - use the simple assignment of property instead of delete + defineProperty
options.sham - add a flag to not completely full polyfills
options.enumerable - export as enumerable property
options.noTargetGet - prevent calling a getter on target
*/
var _export = function (options, source) {
var TARGET = options.target;
var GLOBAL = options.global;
var STATIC = options.stat;
var FORCED, target, key, targetProperty, sourceProperty, descriptor;
if (GLOBAL) {
target = global_1;
} else if (STATIC) {
target = global_1[TARGET] || setGlobal(TARGET, {});
} else {
target = (global_1[TARGET] || {}).prototype;
}
if (target) for (key in source) {
sourceProperty = source[key];
if (options.noTargetGet) {
descriptor = getOwnPropertyDescriptor$1(target, key);
targetProperty = descriptor && descriptor.value;
} else targetProperty = target[key];
FORCED = isForced_1(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);
// contained in target
if (!FORCED && targetProperty !== undefined) {
if (typeof sourceProperty === typeof targetProperty) continue;
copyConstructorProperties(sourceProperty, targetProperty);
}
// add a flag to not completely full polyfills
if (options.sham || (targetProperty && targetProperty.sham)) {
hide(sourceProperty, 'sham', true);
}
// extend global
redefine(target, key, sourceProperty, options);
}
};
// `IsArray` abstract operation
// https://tc39.github.io/ecma262/#sec-isarray
var isArray = Array.isArray || function isArray(arg) {
return classofRaw(arg) == 'Array';
};
// `ToObject` abstract operation
// https://tc39.github.io/ecma262/#sec-toobject
var toObject = function (argument) {
return Object(requireObjectCoercible(argument));
};
var createProperty = function (object, key, value) {
var propertyKey = toPrimitive(key);
if (propertyKey in object) objectDefineProperty.f(object, propertyKey, createPropertyDescriptor(0, value));
else object[propertyKey] = value;
};
var nativeSymbol = !!Object.getOwnPropertySymbols && !fails(function () {
// Chrome 38 Symbol has incorrect toString conversion
// eslint-disable-next-line no-undef
return !String(Symbol());
});
var Symbol$1 = global_1.Symbol;
var store$1 = shared('wks');
var wellKnownSymbol = function (name) {
return store$1[name] || (store$1[name] = nativeSymbol && Symbol$1[name]
|| (nativeSymbol ? Symbol$1 : uid)('Symbol.' + name));
};
var SPECIES = wellKnownSymbol('species');
// `ArraySpeciesCreate` abstract operation
// https://tc39.github.io/ecma262/#sec-arrayspeciescreate
var arraySpeciesCreate = function (originalArray, length) {
var C;
if (isArray(originalArray)) {
C = originalArray.constructor;
// cross-realm fallback
if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
else if (isObject(C)) {
C = C[SPECIES];
if (C === null) C = undefined;
}
} return new (C === undefined ? Array : C)(length === 0 ? 0 : length);
};
var SPECIES$1 = wellKnownSymbol('species');
var arrayMethodHasSpeciesSupport = function (METHOD_NAME) {
return !fails(function () {
var array = [];
var constructor = array.constructor = {};
constructor[SPECIES$1] = function () {
return { foo: 1 };
};
return array[METHOD_NAME](Boolean).foo !== 1;
});
};
var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');
var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;
var MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';
var IS_CONCAT_SPREADABLE_SUPPORT = !fails(function () {
var array = [];
array[IS_CONCAT_SPREADABLE] = false;
return array.concat()[0] !== array;
});
var SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');
var isConcatSpreadable = function (O) {
if (!isObject(O)) return false;
var spreadable = O[IS_CONCAT_SPREADABLE];
return spreadable !== undefined ? !!spreadable : isArray(O);
};
var FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;
// `Array.prototype.concat` method
// https://tc39.github.io/ecma262/#sec-array.prototype.concat
// with adding support of @@isConcatSpreadable and @@species
_export({ target: 'Array', proto: true, forced: FORCED }, {
concat: function concat(arg) { // eslint-disable-line no-unused-vars
var O = toObject(this);
var A = arraySpeciesCreate(O, 0);
var n = 0;
var i, k, length, len, E;
for (i = -1, length = arguments.length; i < length; i++) {
E = i === -1 ? O : arguments[i];
if (isConcatSpreadable(E)) {
len = toLength(E.length);
if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);
for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);
} else {
if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);
createProperty(A, n++, E);
}
}
A.length = n;
return A;
}
});
/**
* Bootstrap Table Urdu translation
* Author: Malik <me@malikrizwan.com>
*/
$.fn.bootstrapTable.locales['ur-PK'] = {
formatLoadingMessage: function formatLoadingMessage() {
return 'براۓ مہربانی انتظار کیجئے';
},
formatRecordsPerPage: function formatRecordsPerPage(pageNumber) {
return "".concat(pageNumber, " \u0631\u06CC\u06A9\u0627\u0631\u0688\u0632 \u0641\u06CC \u0635\u0641\u06C1 ");
},
formatShowingRows: function formatShowingRows(pageFrom, pageTo, totalRows, totalNotFiltered) {
if (totalNotFiltered !== undefined && totalNotFiltered > 0 && totalNotFiltered > totalRows) {
return "\u062F\u06CC\u06A9\u06BE\u06CC\u06BA ".concat(pageFrom, " \u0633\u06D2 ").concat(pageTo, " \u06A9\u06D2 ").concat(totalRows, "\u0631\u06CC\u06A9\u0627\u0631\u0688\u0632 (filtered from ").concat(totalNotFiltered, " total rows)");
}
return "\u062F\u06CC\u06A9\u06BE\u06CC\u06BA ".concat(pageFrom, " \u0633\u06D2 ").concat(pageTo, " \u06A9\u06D2 ").concat(totalRows, "\u0631\u06CC\u06A9\u0627\u0631\u0688\u0632");
},
formatSRPaginationPreText: function formatSRPaginationPreText() {
return 'previous page';
},
formatSRPaginationPageText: function formatSRPaginationPageText(page) {
return "to page ".concat(page);
},
formatSRPaginationNextText: function formatSRPaginationNextText() {
return 'next page';
},
formatDetailPagination: function formatDetailPagination(totalRows) {
return "Showing ".concat(totalRows, " rows");
},
formatClearSearch: function formatClearSearch() {
return 'Clear Search';
},
formatSearch: function formatSearch() {
return 'تلاش';
},
formatNoMatches: function formatNoMatches() {
return 'کوئی ریکارڈ نہیں ملا';
},
formatPaginationSwitch: function formatPaginationSwitch() {
return 'Hide/Show pagination';
},
formatPaginationSwitchDown: function formatPaginationSwitchDown() {
return 'Show pagination';
},
formatPaginationSwitchUp: function formatPaginationSwitchUp() {
return 'Hide pagination';
},
formatRefresh: function formatRefresh() {
return 'تازہ کریں';
},
formatToggle: function formatToggle() {
return 'تبدیل کریں';
},
formatToggleOn: function formatToggleOn() {
return 'Show card view';
},
formatToggleOff: function formatToggleOff() {
return 'Hide card view';
},
formatColumns: function formatColumns() {
return 'کالم';
},
formatColumnsToggleAll: function formatColumnsToggleAll() {
return 'Toggle all';
},
formatFullscreen: function formatFullscreen() {
return 'Fullscreen';
},
formatAllRows: function formatAllRows() {
return 'All';
},
formatAutoRefresh: function formatAutoRefresh() {
return 'Auto Refresh';
},
formatExport: function formatExport() {
return 'Export data';
},
formatJumpTo: function formatJumpTo() {
return 'GO';
},
formatAdvancedSearch: function formatAdvancedSearch() {
return 'Advanced search';
},
formatAdvancedCloseButton: function formatAdvancedCloseButton() {
return 'Close';
}
};
$.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['ur-PK']);
}));

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
(function(e){const i=e["fi"]=e["fi"]||{};i.dictionary=Object.assign(i.dictionary||{},{"%0 of %1":"","Align cell text to the bottom":"","Align cell text to the center":"","Align cell text to the left":"","Align cell text to the middle":"","Align cell text to the right":"","Align cell text to the top":"","Align center":"Tasaa keskelle","Align left":"Tasaa vasemmalle","Align right":"Tasaa oikealle","Align table to the left":"","Align table to the right":"",Alignment:"",Aquamarine:"Akvamariini",Background:"",Big:"Suuri",Black:"Musta","Block quote":"Lainaus",Blue:"Sininen","Blue marker":"",Bold:"Lihavointi",Border:"","Bulleted List":"Lista",Cancel:"Peruuta","Cannot upload file:":"Tiedostoa ei voitu ladata:","Cell properties":"","Center table":"","Centered image":"Keskitetty kuva","Change image text alternative":"Vaihda kuvan vaihtoehtoinen teksti","Choose heading":"Valitse otsikko",Color:"","Color picker":"",Column:"Sarake","Could not insert image at the current position.":"Kuvan lisäys nykyiseen sijaintiin epäonnistui","Could not obtain resized image URL.":"",Dashed:"","Decrease indent":"Vähennä sisennystä",Default:"Oletus","Delete column":"Poista sarake","Delete row":"Poista rivi","Dim grey":"",Dimensions:"","Document colors":"",Dotted:"",Double:"",Downloadable:"","Dropdown toolbar":"","Edit block":"Muokkaa lohkoa","Edit link":"Muokkaa linkkiä","Editor toolbar":"","Enter image caption":"Syötä kuvateksti","Font Background Color":"Fontin taustaväri","Font Color":"Fontin väri","Font Family":"Fonttiperhe","Font Size":"Fontin koko","Full size image":"Täysikokoinen kuva",Green:"Vihreä","Green marker":"","Green pen":"",Grey:"Harmaa",Groove:"","Header column":"Otsikkosarake","Header row":"Otsikkorivi",Heading:"Otsikkotyyli","Heading 1":"Otsikko 1","Heading 2":"Otsikko 2","Heading 3":"Otsikko 3","Heading 4":"Otsikko 4","Heading 5":"Otsikko 5","Heading 6":"Otsikko 6",Height:"",Highlight:"Korosta","Horizontal text alignment toolbar":"",Huge:"Hyvin suuri","Image resize list":"","Image toolbar":"","image widget":"Kuvavimpain","Increase indent":"Lisää sisennystä","Insert column left":"Lisää sarake vasemmalle","Insert column right":"Lisää sarake oikealle","Insert image":"Lisää kuva","Insert image or file":"Lisää kuva tai tiedosto","Insert media":"","Insert row above":"Lisää rivi ylle","Insert row below":"Lisää rivi alle","Insert table":"Lisää taulukko","Inserting image failed":"Kuvan lisäys epäonnistui",Inset:"",Italic:"Kursivointi",Justify:"Tasaa molemmat reunat","Justify cell text":"","Left aligned image":"Vasemmalle tasattu kuva","Light blue":"Vaaleansininen","Light green":"Vaaleanvihreä","Light grey":"Vaaleanharmaa",Link:"Linkki","Link URL":"Linkin osoite","Media URL":"","media widget":"","Merge cell down":"Yhdistä solu alas","Merge cell left":"Yhdistä solu vasemmalle","Merge cell right":"Yhdistä solu oikealle","Merge cell up":"Yhdistä solu ylös","Merge cells":"Yhdistä tai jaa soluja",Next:"",None:"","Numbered List":"Numeroitu lista","Open in a new tab":"","Open link in new tab":"Avaa linkki uudessa välilehdessä",Orange:"Oranssi",Original:"",Outset:"",Padding:"",Paragraph:"Kappale","Paste the media URL in the input.":"","Pink marker":"",Previous:"",Purple:"Purppura",Red:"Punainen","Red pen":"",Redo:"Tee uudelleen","Remove color":"Poista väri","Remove highlight":"Poista korostus","Resize image":"","Resize image to %0":"","Resize image to the original size":"","Rich Text Editor":"Rikas tekstieditori","Rich Text Editor, %0":"Rikas tekstieditori, %0",Ridge:"","Right aligned image":"Oikealle tasattu kuva",Row:"Rivi",Save:"Tallenna","Select column":"Valitse sarake","Select row":"Valitse rivi","Selecting resized image failed":"","Show more items":"","Side image":"Pieni kuva",Small:"Pieni",Solid:"","Split cell horizontally":"Jaa solu vaakasuunnassa","Split cell vertically":"Jaa solu pystysuunnassa",Style:"","Table alignment toolbar":"","Table cell text alignment":"","Table properties":"","Table toolbar":"","Text alignment":"Tekstin tasaus","Text alignment toolbar":"","Text alternative":"Vaihtoehtoinen teksti","Text highlight toolbar":"",'The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".':"","The URL must not be empty.":"URL-osoite ei voi olla tyhjä.",'The value is invalid. Try "10px" or "2em" or simply "2".':"","This link has no URL":"Linkillä ei ole URL-osoitetta","This media URL is not supported.":"",Tiny:"Hyvin pieni","Tip: Paste the URL into the content to embed faster.":"",Turquoise:"Turkoosi",Undo:"Peru",Unlink:"Poista linkki","Upload failed":"Lataus epäonnistui","Upload in progress":"Lähetys käynnissä","Vertical text alignment toolbar":"",White:"Valkoinen",Width:"",Yellow:"Keltainen","Yellow marker":""});i.getPluralForm=function(e){return e!=1}})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));

View File

@ -0,0 +1,175 @@
//! moment.js locale configuration
//! locale : Russian [ru]
//! author : Viktorminator : https://github.com/Viktorminator
//! Author : Menelion Elensúle : https://github.com/Oire
//! author : Коренберг Марк : https://github.com/socketpair
import moment from '../moment';
function plural(word, num) {
var forms = word.split('_');
return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);
}
function relativeTimeWithPlural(number, withoutSuffix, key) {
var format = {
'ss': withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',
'mm': withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',
'hh': 'часасаасов',
'dd': 'день_дня_дней',
'MM': 'месяц_месяцаесяцев',
'yy': 'год_годает'
};
if (key === 'm') {
return withoutSuffix ? 'минута' : 'минуту';
}
else {
return number + ' ' + plural(format[key], +number);
}
}
var monthsParse = [/^янв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[йя]/i, /^июн/i, /^июл/i, /^авг/i, /^сен/i, /^окт/i, /^ноя/i, /^дек/i];
// http://new.gramota.ru/spravka/rules/139-prop : § 103
// Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637
// CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753
export default moment.defineLocale('ru', {
months : {
format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split('_'),
standalone: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_')
},
monthsShort : {
// по CLDR именно "июл." и "июн.", но какой смысл менять букву на точку ?
format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split('_'),
standalone: 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split('_')
},
weekdays : {
standalone: 'воскресенье_понедельник_вторник_средаетверг_пятница_суббота'.split('_'),
format: 'воскресенье_понедельник_вторник_средуетверг_пятницу_субботу'.split('_'),
isFormat: /\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\] ?dddd/
},
weekdaysShort : 'вс_пн_вт_ср_чт_пт_сб'.split('_'),
weekdaysMin : 'вс_пн_вт_ср_чт_пт_сб'.split('_'),
monthsParse : monthsParse,
longMonthsParse : monthsParse,
shortMonthsParse : monthsParse,
// полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки
monthsRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,
// копия предыдущего
monthsShortRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,
// полные названия с падежами
monthsStrictRegex: /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,
// Выражение, которое соотвествует только сокращённым формам
monthsShortStrictRegex: /^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i,
longDateFormat : {
LT : 'H:mm',
LTS : 'H:mm:ss',
L : 'DD.MM.YYYY',
LL : 'D MMMM YYYY г.',
LLL : 'D MMMM YYYY г., H:mm',
LLLL : 'dddd, D MMMM YYYY г., H:mm'
},
calendar : {
sameDay: '[Сегодня, в] LT',
nextDay: '[Завтра, в] LT',
lastDay: '[Вчера, в] LT',
nextWeek: function (now) {
if (now.week() !== this.week()) {
switch (this.day()) {
case 0:
return '[В следующее] dddd, [в] LT';
case 1:
case 2:
case 4:
return '[В следующий] dddd, [в] LT';
case 3:
case 5:
case 6:
return '[В следующую] dddd, [в] LT';
}
} else {
if (this.day() === 2) {
return '[Во] dddd, [в] LT';
} else {
return '[В] dddd, [в] LT';
}
}
},
lastWeek: function (now) {
if (now.week() !== this.week()) {
switch (this.day()) {
case 0:
return '[В прошлое] dddd, [в] LT';
case 1:
case 2:
case 4:
return '[В прошлый] dddd, [в] LT';
case 3:
case 5:
case 6:
return '[В прошлую] dddd, [в] LT';
}
} else {
if (this.day() === 2) {
return '[Во] dddd, [в] LT';
} else {
return '[В] dddd, [в] LT';
}
}
},
sameElse: 'L'
},
relativeTime : {
future : 'через %s',
past : '%s назад',
s : 'несколько секунд',
ss : relativeTimeWithPlural,
m : relativeTimeWithPlural,
mm : relativeTimeWithPlural,
h : 'час',
hh : relativeTimeWithPlural,
d : 'день',
dd : relativeTimeWithPlural,
M : 'месяц',
MM : relativeTimeWithPlural,
y : 'год',
yy : relativeTimeWithPlural
},
meridiemParse: /ночи|утра|дня|вечера/i,
isPM : function (input) {
return /^(дня|вечера)$/.test(input);
},
meridiem : function (hour, minute, isLower) {
if (hour < 4) {
return 'ночи';
} else if (hour < 12) {
return 'утра';
} else if (hour < 17) {
return 'дня';
} else {
return 'вечера';
}
},
dayOfMonthOrdinalParse: /\d{1,2}-(й|го|я)/,
ordinal: function (number, period) {
switch (period) {
case 'M':
case 'd':
case 'DDD':
return number + '-й';
case 'D':
return number + '-го';
case 'w':
case 'W':
return number + '-я';
default:
return number;
}
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,125 @@
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('jquery')) :
typeof define === 'function' && define.amd ? define(['jquery'], factory) :
(global = global || self, factory(global.jQuery));
}(this, function ($) { 'use strict';
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
function _classCallCheck(instance, Constructor) {
if (!(instance instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function");
}
}
function _defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
if ("value" in descriptor) descriptor.writable = true;
Object.defineProperty(target, descriptor.key, descriptor);
}
}
function _createClass(Constructor, protoProps, staticProps) {
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
if (staticProps) _defineProperties(Constructor, staticProps);
return Constructor;
}
function _inherits(subClass, superClass) {
if (typeof superClass !== "function" && superClass !== null) {
throw new TypeError("Super expression must either be null or a function");
}
subClass.prototype = Object.create(superClass && superClass.prototype, {
constructor: {
value: subClass,
writable: true,
configurable: true
}
});
if (superClass) _setPrototypeOf(subClass, superClass);
}
function _getPrototypeOf(o) {
_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
return o.__proto__ || Object.getPrototypeOf(o);
};
return _getPrototypeOf(o);
}
function _setPrototypeOf(o, p) {
_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
o.__proto__ = p;
return o;
};
return _setPrototypeOf(o, p);
}
function _assertThisInitialized(self) {
if (self === void 0) {
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
}
return self;
}
function _possibleConstructorReturn(self, call) {
if (call && (typeof call === "object" || typeof call === "function")) {
return call;
}
return _assertThisInitialized(self);
}
/**
* @author: Jewway
* @update zhixin wen <wenzhixin2010@gmail.com>
*/
$.fn.bootstrapTable.methods.push('changeTitle');
$.fn.bootstrapTable.methods.push('changeLocale');
$.BootstrapTable =
/*#__PURE__*/
function (_$$BootstrapTable) {
_inherits(_class, _$$BootstrapTable);
function _class() {
_classCallCheck(this, _class);
return _possibleConstructorReturn(this, _getPrototypeOf(_class).apply(this, arguments));
}
_createClass(_class, [{
key: "changeTitle",
value: function changeTitle(locale) {
$.each(this.options.columns, function (idx, columnList) {
$.each(columnList, function (idx, column) {
if (column.field) {
column.title = locale[column.field];
}
});
});
this.initHeader();
this.initBody();
this.initToolbar();
}
}, {
key: "changeLocale",
value: function changeLocale(localeId) {
this.options.locale = localeId;
this.initLocale();
this.initPagination();
this.initBody();
this.initToolbar();
}
}]);
return _class;
}($.BootstrapTable);
}));

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,82 @@
//! moment.js locale configuration
//! locale : Bulgarian [bg]
//! author : Krasen Borisov : https://github.com/kraz
import moment from '../moment';
export default moment.defineLocale('bg', {
months : 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split('_'),
monthsShort : 'янрев_мар_апрай_юни_юли_авг_сеп_окт_ноеек'.split('_'),
weekdays : 'неделя_понеделник_вторник_срядаетвъртък_петък_събота'.split('_'),
weekdaysShort : 'нед_пон_вто_сря_чет_пет_съб'.split('_'),
weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
longDateFormat : {
LT : 'H:mm',
LTS : 'H:mm:ss',
L : 'D.MM.YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY H:mm',
LLLL : 'dddd, D MMMM YYYY H:mm'
},
calendar : {
sameDay : '[Днес в] LT',
nextDay : '[Утре в] LT',
nextWeek : 'dddd [в] LT',
lastDay : '[Вчера в] LT',
lastWeek : function () {
switch (this.day()) {
case 0:
case 3:
case 6:
return '[В изминалата] dddd [в] LT';
case 1:
case 2:
case 4:
case 5:
return '[В изминалия] dddd [в] LT';
}
},
sameElse : 'L'
},
relativeTime : {
future : 'след %s',
past : 'преди %s',
s : 'няколко секунди',
ss : '%d секунди',
m : 'минута',
mm : '%d минути',
h : 'час',
hh : '%d часа',
d : 'ден',
dd : '%d дни',
M : 'месец',
MM : '%d месеца',
y : 'година',
yy : '%d години'
},
dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/,
ordinal : function (number) {
var lastDigit = number % 10,
last2Digits = number % 100;
if (number === 0) {
return number + '-ев';
} else if (last2Digits === 0) {
return number + '-ен';
} else if (last2Digits > 10 && last2Digits < 20) {
return number + '-ти';
} else if (lastDigit === 1) {
return number + '-ви';
} else if (lastDigit === 2) {
return number + '-ри';
} else if (lastDigit === 7 || lastDigit === 8) {
return number + '-ми';
} else {
return number + '-ти';
}
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 7 // The week that contains Jan 1st is the first week of the year.
}
});

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,110 @@
//! moment.js language configuration
//! locale : Uyghur (China) [ug-cn]
//! author: boyaq : https://github.com/boyaq
import moment from '../moment';
export default moment.defineLocale('ug-cn', {
months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(
'_'
),
monthsShort: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(
'_'
),
weekdays: 'يەكشەنبە_دۈشەنبەەيشەنبەارشەنبەەيشەنبە_جۈمەەنبە'.split(
'_'
),
weekdaysShort: 'يە_دۈ_سەاە_جۈ_شە'.split('_'),
weekdaysMin: 'يە_دۈ_سەاە_جۈ_شە'.split('_'),
longDateFormat: {
LT: 'HH:mm',
LTS: 'HH:mm:ss',
L: 'YYYY-MM-DD',
LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى',
LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',
LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm'
},
meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,
meridiemHour: function (hour, meridiem) {
if (hour === 12) {
hour = 0;
}
if (
meridiem === 'يېرىم كېچە' ||
meridiem === 'سەھەر' ||
meridiem === 'چۈشتىن بۇرۇن'
) {
return hour;
} else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') {
return hour + 12;
} else {
return hour >= 11 ? hour : hour + 12;
}
},
meridiem: function (hour, minute, isLower) {
var hm = hour * 100 + minute;
if (hm < 600) {
return 'يېرىم كېچە';
} else if (hm < 900) {
return 'سەھەر';
} else if (hm < 1130) {
return 'چۈشتىن بۇرۇن';
} else if (hm < 1230) {
return 'چۈش';
} else if (hm < 1800) {
return 'چۈشتىن كېيىن';
} else {
return 'كەچ';
}
},
calendar: {
sameDay: '[بۈگۈن سائەت] LT',
nextDay: '[ئەتە سائەت] LT',
nextWeek: '[كېلەركى] dddd [سائەت] LT',
lastDay: '[تۆنۈگۈن] LT',
lastWeek: '[ئالدىنقى] dddd [سائەت] LT',
sameElse: 'L'
},
relativeTime: {
future: '%s كېيىن',
past: '%s بۇرۇن',
s: 'نەچچە سېكونت',
ss: '%d سېكونت',
m: 'بىر مىنۇت',
mm: '%d مىنۇت',
h: 'بىر سائەت',
hh: '%d سائەت',
d: 'بىر كۈن',
dd: '%d كۈن',
M: 'بىر ئاي',
MM: '%d ئاي',
y: 'بىر يىل',
yy: '%d يىل'
},
dayOfMonthOrdinalParse: /\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,
ordinal: function (number, period) {
switch (period) {
case 'd':
case 'D':
case 'DDD':
return number + '-كۈنى';
case 'w':
case 'W':
return number + '-ھەپتە';
default:
return number;
}
},
preparse: function (string) {
return string.replace(/،/g, ',');
},
postformat: function (string) {
return string.replace(/,/g, '،');
},
week: {
// GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效
dow: 1, // Monday is the first day of the week.
doy: 7 // The week that contains Jan 1st is the first week of the year.
}
});

View File

@ -0,0 +1,40 @@
# Table Export
Use Plugin: [tableExport.jquery.plugin](https://github.com/hhurz/tableExport.jquery.plugin)
This is an important link to check out as some file types may require extra steps.
## Usage
```html
<script src="extensions/export/bootstrap-table-export.js"></script>
```
## Options
### showExport
* type: Boolean
* description: set `true` to show export button.
* default: `false`
### exportDataType
* type: String
* description: export data type, support: 'basic', 'all', 'selected'.
* default: `basic`
### exportTypes
* type: Array
* description: export types, support types: 'json', 'xml', 'png', 'csv', 'txt', 'sql', 'doc', 'excel', 'xlsx', 'pdf'.
* default: `['json', 'xml', 'csv', 'txt', 'sql', 'excel']`
### exportOptions
* type: Object
* description: export [options](https://github.com/hhurz/tableExport.jquery.plugin#options) of `tableExport.jquery.plugin`
* default: `{}`
### Icons
* export: 'glyphicon-export icon-share'

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,327 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="kr.co.i4way.manage.dao.ManageDao">
<select id="getDual" resultType="java.lang.String">
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24MISS') FROM DUAL
</select>
<select id="getCommCode" parameterType="kr.co.i4way.manage.model.CommonInfoVo" resultType="hashmap">
SELECT CODE
,P_CODE
,USE_YN
,ORDER_NO
,CODE_NAME
,CODE_DESC1
,CODE_DESC2
FROM TBL_WALL_COMMON
WHERE P_CODE = #{p_code}
<if test='use_yn != "ALL" '>
AND USE_YN = #{use_yn}
</if>
ORDER BY ORDER_NO ASC
</select>
<select id="getLoginInfo" parameterType="kr.co.i4way.manage.model.LoginVo" resultType="hashmap">
<![CDATA[
SELECT USER_ID
,USER_NAME
,PASSWD
,CENTER_ID
,CUSTOM1
,CUSTOM2
FROM TBL_WALL_USER
WHERE USER_ID = #{user_id}
AND PASSWD = #{passwd}
]]>
</select>
<select id="getWallInfo_Manage" parameterType="kr.co.i4way.sample.model.WallInfoVo" resultType="hashmap">
SELECT a.ID,
a.CENTER_ID,
b.CENTER_NAME,
a.WALL_NAME,
a.BG_INFO,
c.IMG_PATH BG_PATH,
c.IMG_FILE_NM BG_FILE,
c.IMG_NM BG_NM,
d.IMG_PATH CI_PATH,
d.IMG_FILE_NM CI_FILE,
d.IMG_NM CI_NM,
a.VIEW_YN,
b.CENTER_ORDER,
a.WALL_ORDER,
a.WALL_DURATION,
a.FONT_COLOR,
a.CI_INFO,
a.WALL_URL,
a.CHANGE_EFFECT
FROM TBL_WALL_INFO a, TBL_WALL_CENTER b, TBL_IMAGE c, TBL_IMAGE d
WHERE a.CENTER_ID = b.CENTER_ID
AND a.BG_INFO = c.IMG_ID
AND a.CI_INFO = d.IMG_ID
AND a.VIEW_YN = 'Y'
<if test='center_id != "" '>
<if test="query_arry != null and query_arry.length > 0">
AND a.CENTER_ID IN
<foreach collection="query_arry" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
</if>
ORDER BY b.CENTER_ORDER, a.WALL_ORDER ASC
</select>
<select id="getCenterInfo_Manage" parameterType="kr.co.i4way.manage.model.CenterInfoVo" resultType="hashmap">
SELECT CENTER_ID
,CENTER_NAME
,CENTER_ORDER
,USE_YN
,CUSTOM1
,CUSTOM2
FROM TBL_WALL_CENTER
ORDER BY CENTER_ORDER ASC
</select>
<insert id="insertCenterInfo" parameterType="kr.co.i4way.manage.model.CenterInfoVo">
<![CDATA[
INSERT INTO TBL_WALL_CENTER(CENTER_ID, CENTER_NAME, CENTER_ORDER, USE_YN, CUSTOM1, CUSTOM2) VALUES(
#{center_id}
, #{center_name}
, #{center_order}
, #{use_yn}
, #{custom1}
, #{custom2}
)
]]>
</insert>
<insert id="updateCenterInfo" parameterType="kr.co.i4way.manage.model.CenterInfoVo">
<![CDATA[
UPDATE TBL_WALL_CENTER SET
CENTER_NAME = #{center_name}
,CENTER_ORDER = #{center_order}
,USE_YN = #{use_yn}
,CUSTOM1 = #{custom1}
,CUSTOM2 = #{custom2}
WHERE
CENTER_ID = #{center_id}
]]>
</insert>
<insert id="deleteCenterInfo" parameterType="kr.co.i4way.manage.model.CenterInfoVo">
<![CDATA[
DELETE FROM TBL_WALL_CENTER
WHERE
CENTER_ID = #{center_id}
]]>
</insert>
<select id="getObjInfo_Manage" parameterType="kr.co.i4way.manage.model.ObjInfoVo" resultType="hashmap">
SELECT a.CENTER_ID
,b.CENTER_NAME
,a.OBJ_ID
,a.DBID
,a.OBJ_TYPE
,c.CODE_NAME AS OBJ_TYPE_NAME
,a.OBJ_NAME
FROM TBL_WALL_OBJ a, TBL_WALL_CENTER b, TBL_WALL_COMMON c
WHERE a.CENTER_ID = b.CENTER_ID
AND a.OBJ_TYPE = c.CODE
AND c.P_CODE = 'A001'
ORDER BY b.CENTER_ORDER, a.OBJ_NAME ASC
</select>
<insert id="insertObjInfo" parameterType="kr.co.i4way.manage.model.ObjInfoVo">
<![CDATA[
INSERT INTO TBL_WALL_OBJ(CENTER_ID, OBJ_ID, DBID, OBJ_TYPE, OBJ_NAME, CUSTOM1, CUSTOM2) VALUES(
#{center_id}
, #{obj_id}
, #{dbid}
, #{obj_type}
, #{obj_name}
, #{custom1}
, #{custom2}
)
]]>
</insert>
<insert id="updateObjInfo" parameterType="kr.co.i4way.manage.model.ObjInfoVo">
<![CDATA[
UPDATE TBL_WALL_OBJ SET
DBID = #{dbid}
,OBJ_TYPE = #{obj_type}
,OBJ_NAME = #{obj_name}
,CUSTOM1 = #{custom1}
,CUSTOM2 = #{custom2}
WHERE CENTER_ID = #{center_id}
AND OBJ_ID = #{obj_id}
]]>
</insert>
<insert id="deleteObjInfo" parameterType="kr.co.i4way.manage.model.ObjInfoVo">
<![CDATA[
DELETE FROM TBL_WALL_OBJ
WHERE CENTER_ID = #{center_id}
AND OBJ_ID = #{obj_id}
]]>
</insert>
<select id="getUserInfo_Manage" parameterType="kr.co.i4way.manage.model.UserInfoVo" resultType="hashmap">
SELECT a.USER_ID
,a.USER_NAME
,a.PASSWD
,a.CENTER_ID
,a.GRADE
,b.CODE_NAME AS GRADE_NM
,a.CUSTOM1
,a.CUSTOM2
FROM TBL_WALL_USER a, TBL_WALL_COMMON b
WHERE a.GRADE = b.CODE
AND b.P_CODE = 'A002'
ORDER BY a.USER_NAME ASC
</select>
<insert id="insertUserInfo" parameterType="kr.co.i4way.manage.model.UserInfoVo">
<![CDATA[
INSERT INTO TBL_WALL_USER(USER_ID, USER_NAME, PASSWD, CENTER_ID, GRADE, CUSTOM1, CUSTOM2) VALUES(
#{user_id}
, #{user_name}
, #{passwd}
, #{center_id}
, #{grade}
, #{custom1}
, #{custom2}
)
]]>
</insert>
<insert id="updateUserInfo" parameterType="kr.co.i4way.manage.model.UserInfoVo">
<![CDATA[
UPDATE TBL_WALL_USER SET
USER_NAME = #{user_name}
,PASSWD = #{passwd}
,CENTER_ID = #{center_id}
,GRADE = #{grade}
,CUSTOM1 = #{custom1}
,CUSTOM2 = #{custom2}
WHERE
USER_ID = #{user_id}
]]>
</insert>
<insert id="deleteUserInfo" parameterType="kr.co.i4way.manage.model.UserInfoVo">
<![CDATA[
DELETE FROM TBL_WALL_USER
WHERE
USER_ID = #{user_id}
]]>
</insert>
<select id="getImageInfo_Manage" parameterType="kr.co.i4way.manage.model.ImageInfoVo" resultType="hashmap">
SELECT IMG_ID
, IMG_PATH
, IMG_FILE_NM
, IMG_TYPE
, DECODE(IMG_TYPE, 'B', '배경', 'C', 'CI') AS IMG_TYPE_NM
, IMG_NM
, CUSTOM1
FROM TBL_IMAGE
ORDER BY IMG_FILE_NM ASC
</select>
<insert id="insertImageInfo" parameterType="kr.co.i4way.manage.model.ImageInfoVo">
<![CDATA[
INSERT INTO TBL_WALL_USER(USER_ID, USER_NAME, PASSWD, CENTER_ID, GRADE, CUSTOM1, CUSTOM2) VALUES(
#{user_id}
, #{user_name}
, #{passwd}
, #{center_id}
, #{grade}
, #{custom1}
, #{custom2}
)
]]>
</insert>
<insert id="updateImageInfo" parameterType="kr.co.i4way.manage.model.ImageInfoVo">
<![CDATA[
UPDATE TBL_WALL_USER SET
USER_NAME = #{user_name}
,PASSWD = #{passwd}
,CENTER_ID = #{center_id}
,GRADE = #{grade}
,CUSTOM1 = #{custom1}
,CUSTOM2 = #{custom2}
WHERE
USER_ID = #{user_id}
]]>
</insert>
<insert id="deleteImageInfo" parameterType="kr.co.i4way.manage.model.ImageInfoVo">
<![CDATA[
DELETE FROM TBL_WALL_USER
WHERE
USER_ID = #{user_id}
]]>
</insert>
<select id="getWallInfo" parameterType="kr.co.i4way.sample.model.WallInfoVo" resultType="hashmap">
SELECT a.ID,
a.CENTER_ID,
b.CENTER_NAME,
a.WALL_NAME,
a.BG_INFO,
c.IMG_PATH BG_PATH,
c.IMG_FILE_NM BG_FILE,
c.IMG_NM BG_NM,
d.IMG_PATH CI_PATH,
d.IMG_FILE_NM CI_FILE,
d.IMG_NM CI_NM,
a.VIEW_YN,
b.CENTER_ORDER,
a.WALL_ORDER,
a.WALL_DURATION,
a.FONT_COLOR,
a.CI_INFO,
a.WALL_URL,
a.CHANGE_EFFECT
FROM TBL_WALL_INFO a, TBL_WALL_CENTER b, TBL_IMAGE c, TBL_IMAGE d
WHERE a.CENTER_ID = b.CENTER_ID
AND a.BG_INFO = c.IMG_ID
AND a.CI_INFO = d.IMG_ID
AND a.VIEW_YN = 'Y'
<if test='center_id != "" '>
<if test="query_arry != null and query_arry.length > 0">
AND a.CENTER_ID IN
<foreach collection="query_arry" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
</if>
ORDER BY b.CENTER_ORDER, a.WALL_ORDER ASC
</select>
<select id="getImages" parameterType="kr.co.i4way.manage.model.ImageInfoVo" resultType="hashmap">
SELECT IMG_ID
, IMG_PATH
, IMG_FILE_NM
, IMG_NM
, CUSTOM1
FROM TBL_IMAGE
WHERE IMG_TYPE = #{img_type}
ORDER BY IMG_FILE_NM ASC
</select>
<update id="saveWallInfo" parameterType="kr.co.i4way.sample.model.WallInfoVo">
<![CDATA[
UPDATE TBL_WALL_INFO SET
BG_INFO = #{bg_info}
,CI_INFO = #{ci_info}
WHERE
ID = #{id}
]]>
</update>
</mapper>

View File

@ -0,0 +1,10 @@
/**
* bootstrap-table - An extended table to integration with some of the most widely used CSS frameworks. (Supports Bootstrap, Semantic UI, Bulma, Material Design, Foundation)
*
* @version v1.15.2
* @homepage https://bootstrap-table.com
* @author wenzhixin <wenzhixin2010@gmail.com> (http://wenzhixin.net.cn/)
* @license MIT
*/
.fixed-table-header-columns,.fixed-table-body-columns{position:absolute;background-color:#fff;box-sizing:border-box;overflow:hidden;z-index:1}.fixed-table-header-columns{z-index:2}.fixed-table-header-columns .table,.fixed-table-body-columns .table{border-right:1px solid #ddd}.fixed-table-header-columns .table.table-no-bordered,.fixed-table-body-columns .table.table-no-bordered{border-right:1px solid transparent}.fixed-table-body-columns table{position:absolute;animation:none}

View File

@ -0,0 +1,17 @@
{
"name": "Natural Sorting",
"version": "1.0.0",
"description": "Plugin to support the natural sorting.",
"url": "https://github.com/wenzhixin/bootstrap-table/tree/master/src/extensions/natural-sorting",
"example": "#",
"plugins": [{
"name": "bootstrap-table-natural-sorting",
"url": "https://github.com/wenzhixin/bootstrap-table/tree/master/src/extensions/natural-sorting"
}],
"author": {
"name": "GreyWyvern",
"image": "https://avatars1.githubusercontent.com/u/137631"
}
}

View File

@ -0,0 +1,73 @@
//! moment.js locale configuration
//! locale : Welsh [cy]
//! author : Robert Allen : https://github.com/robgallen
//! author : https://github.com/ryangreaves
import moment from '../moment';
export default moment.defineLocale('cy', {
months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split('_'),
monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split('_'),
weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split('_'),
weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),
weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),
weekdaysParseExact : true,
// time formats are the same as en-gb
longDateFormat: {
LT: 'HH:mm',
LTS : 'HH:mm:ss',
L: 'DD/MM/YYYY',
LL: 'D MMMM YYYY',
LLL: 'D MMMM YYYY HH:mm',
LLLL: 'dddd, D MMMM YYYY HH:mm'
},
calendar: {
sameDay: '[Heddiw am] LT',
nextDay: '[Yfory am] LT',
nextWeek: 'dddd [am] LT',
lastDay: '[Ddoe am] LT',
lastWeek: 'dddd [diwethaf am] LT',
sameElse: 'L'
},
relativeTime: {
future: 'mewn %s',
past: '%s yn ôl',
s: 'ychydig eiliadau',
ss: '%d eiliad',
m: 'munud',
mm: '%d munud',
h: 'awr',
hh: '%d awr',
d: 'diwrnod',
dd: '%d diwrnod',
M: 'mis',
MM: '%d mis',
y: 'blwyddyn',
yy: '%d flynedd'
},
dayOfMonthOrdinalParse: /\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,
// traditional ordinal numbers above 31 are not commonly used in colloquial Welsh
ordinal: function (number) {
var b = number,
output = '',
lookup = [
'', 'af', 'il', 'ydd', 'ydd', 'ed', 'ed', 'ed', 'fed', 'fed', 'fed', // 1af to 10fed
'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'fed' // 11eg to 20fed
];
if (b > 20) {
if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {
output = 'fed'; // not 30ain, 70ain or 90ain
} else {
output = 'ain';
}
} else if (b > 0) {
output = lookup[b];
}
return number + output;
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});

View File

@ -0,0 +1,98 @@
//! moment.js locale configuration
//! locale : Persian [fa]
//! author : Ebrahim Byagowi : https://github.com/ebraminio
import moment from '../moment';
var symbolMap = {
'1': '۱',
'2': '۲',
'3': '۳',
'4': '۴',
'5': '۵',
'6': '۶',
'7': '۷',
'8': '۸',
'9': '۹',
'0': '۰'
}, numberMap = {
'۱': '1',
'۲': '2',
'۳': '3',
'۴': '4',
'۵': '5',
'۶': '6',
'۷': '7',
'۸': '8',
'۹': '9',
'۰': '0'
};
export default moment.defineLocale('fa', {
months : 'ژانویه_فوریهارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),
monthsShort : 'ژانویه_فوریهارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),
weekdays : 'یک\u200cشنبه_دوشنبهه\u200cشنبههارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split('_'),
weekdaysShort : 'یک\u200cشنبه_دوشنبهه\u200cشنبههارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split('_'),
weekdaysMin : 'ی_د_س_چ_پ_ج_ش'.split('_'),
weekdaysParseExact : true,
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY HH:mm',
LLLL : 'dddd, D MMMM YYYY HH:mm'
},
meridiemParse: /قبل از ظهر|بعد از ظهر/,
isPM: function (input) {
return /بعد از ظهر/.test(input);
},
meridiem : function (hour, minute, isLower) {
if (hour < 12) {
return 'قبل از ظهر';
} else {
return 'بعد از ظهر';
}
},
calendar : {
sameDay : '[امروز ساعت] LT',
nextDay : '[فردا ساعت] LT',
nextWeek : 'dddd [ساعت] LT',
lastDay : '[دیروز ساعت] LT',
lastWeek : 'dddd [پیش] [ساعت] LT',
sameElse : 'L'
},
relativeTime : {
future : 'در %s',
past : '%s پیش',
s : 'چند ثانیه',
ss : 'ثانیه d%',
m : 'یک دقیقه',
mm : '%d دقیقه',
h : 'یک ساعت',
hh : '%d ساعت',
d : 'یک روز',
dd : '%d روز',
M : 'یک ماه',
MM : '%d ماه',
y : 'یک سال',
yy : '%d سال'
},
preparse: function (string) {
return string.replace(/[۰-۹]/g, function (match) {
return numberMap[match];
}).replace(/،/g, ',');
},
postformat: function (string) {
return string.replace(/\d/g, function (match) {
return symbolMap[match];
}).replace(/,/g, '،');
},
dayOfMonthOrdinalParse: /\d{1,2}م/,
ordinal : '%dم',
week : {
dow : 6, // Saturday is the first day of the week.
doy : 12 // The week that contains Jan 1st is the first week of the year.
}
});

View File

@ -0,0 +1,74 @@
//! moment.js locale configuration
//! locale : Indonesian [id]
//! author : Mohammad Satrio Utomo : https://github.com/tyok
//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan
import moment from '../moment';
export default moment.defineLocale('id', {
months : 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split('_'),
monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),
weekdays : 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),
weekdaysShort : 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),
weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),
longDateFormat : {
LT : 'HH.mm',
LTS : 'HH.mm.ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY [pukul] HH.mm',
LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'
},
meridiemParse: /pagi|siang|sore|malam/,
meridiemHour : function (hour, meridiem) {
if (hour === 12) {
hour = 0;
}
if (meridiem === 'pagi') {
return hour;
} else if (meridiem === 'siang') {
return hour >= 11 ? hour : hour + 12;
} else if (meridiem === 'sore' || meridiem === 'malam') {
return hour + 12;
}
},
meridiem : function (hours, minutes, isLower) {
if (hours < 11) {
return 'pagi';
} else if (hours < 15) {
return 'siang';
} else if (hours < 19) {
return 'sore';
} else {
return 'malam';
}
},
calendar : {
sameDay : '[Hari ini pukul] LT',
nextDay : '[Besok pukul] LT',
nextWeek : 'dddd [pukul] LT',
lastDay : '[Kemarin pukul] LT',
lastWeek : 'dddd [lalu pukul] LT',
sameElse : 'L'
},
relativeTime : {
future : 'dalam %s',
past : '%s yang lalu',
s : 'beberapa detik',
ss : '%d detik',
m : 'semenit',
mm : '%d menit',
h : 'sejam',
hh : '%d jam',
d : 'sehari',
dd : '%d hari',
M : 'sebulan',
MM : '%d bulan',
y : 'setahun',
yy : '%d tahun'
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 7 // The week that contains Jan 1st is the first week of the year.
}
});

View File

@ -0,0 +1,58 @@
//! moment.js locale configuration
//! locale : Thai [th]
//! author : Kridsada Thanabulpong : https://github.com/sirn
import moment from '../moment';
export default moment.defineLocale('th', {
months : 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split('_'),
monthsShort : 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split('_'),
monthsParseExact: true,
weekdays : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),
weekdaysShort : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference
weekdaysMin : 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),
weekdaysParseExact : true,
longDateFormat : {
LT : 'H:mm',
LTS : 'H:mm:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY เวลา H:mm',
LLLL : 'วันddddที่ D MMMM YYYY เวลา H:mm'
},
meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,
isPM: function (input) {
return input === 'หลังเที่ยง';
},
meridiem : function (hour, minute, isLower) {
if (hour < 12) {
return 'ก่อนเที่ยง';
} else {
return 'หลังเที่ยง';
}
},
calendar : {
sameDay : '[วันนี้ เวลา] LT',
nextDay : '[พรุ่งนี้ เวลา] LT',
nextWeek : 'dddd[หน้า เวลา] LT',
lastDay : '[เมื่อวานนี้ เวลา] LT',
lastWeek : '[วัน]dddd[ที่แล้ว เวลา] LT',
sameElse : 'L'
},
relativeTime : {
future : 'อีก %s',
past : '%sที่แล้ว',
s : 'ไม่กี่วินาที',
ss : '%d วินาที',
m : '1 นาที',
mm : '%d นาที',
h : '1 ชั่วโมง',
hh : '%d ชั่วโมง',
d : '1 วัน',
dd : '%d วัน',
M : '1 เดือน',
MM : '%d เดือน',
y : '1 ปี',
yy : '%d ปี'
}
});

View File

@ -0,0 +1,17 @@
# Table Accent Neutralise
Use Plugin: [bootstrap-table-accent-neutralise](https://github.com/wenzhixin/bootstrap-table/tree/master/src/extensions/accent-neutralise)
## Usage
```html
<script src="extensions/multiple-search/bootstrap-table-accent-neutralise.js"></script>
```
## Options
### searchAccentNeutralise
* type: Boolean
* description: Set to true if you want to use accent neutralise feature.
* default: `false`

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,22 @@
/**
* @author vincent loh <vincent.ml@gmail.com>
* @update zhixin wen <wenzhixin2010@gmail.com>
*/
.fix-sticky {
position: fixed !important;
overflow: hidden;
z-index: 100;
}
.fix-sticky table thead {
background: #fff;
}
.fix-sticky table thead.thead-light {
background: #e9ecef;
}
.fix-sticky table thead.thead-dark {
background: #212529;
}

View File

@ -0,0 +1 @@
.table:not(.table-condensed)>tbody>tr>td.treenode{padding-top:0;padding-bottom:0;border-bottom:solid #fff 1px}.table:not(.table-condensed)>tbody>tr:last-child>td.treenode{border-bottom:none}.treenode .text{float:left;display:block;padding-top:6px;padding-bottom:6px}.treenode .vertical,.treenode .vertical.last{float:left;display:block;width:1px;border-left:dashed silver 1px;height:38px;margin-left:8px}.treenode .vertical.last{height:15px}.treenode .space,.treenode .node{float:left;display:block;width:15px;height:5px;margin-top:15px}.treenode .node{border-top:dashed silver 1px}

View File

@ -0,0 +1,721 @@
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('jquery')) :
typeof define === 'function' && define.amd ? define(['jquery'], factory) :
(global = global || self, factory(global.jQuery));
}(this, function ($) { 'use strict';
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
function createCommonjsModule(fn, module) {
return module = { exports: {} }, fn(module, module.exports), module.exports;
}
var O = 'object';
var check = function (it) {
return it && it.Math == Math && it;
};
// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
var global_1 =
// eslint-disable-next-line no-undef
check(typeof globalThis == O && globalThis) ||
check(typeof window == O && window) ||
check(typeof self == O && self) ||
check(typeof commonjsGlobal == O && commonjsGlobal) ||
// eslint-disable-next-line no-new-func
Function('return this')();
var fails = function (exec) {
try {
return !!exec();
} catch (error) {
return true;
}
};
// Thank's IE8 for his funny defineProperty
var descriptors = !fails(function () {
return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
});
var nativePropertyIsEnumerable = {}.propertyIsEnumerable;
var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
// Nashorn ~ JDK8 bug
var NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);
// `Object.prototype.propertyIsEnumerable` method implementation
// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable
var f = NASHORN_BUG ? function propertyIsEnumerable(V) {
var descriptor = getOwnPropertyDescriptor(this, V);
return !!descriptor && descriptor.enumerable;
} : nativePropertyIsEnumerable;
var objectPropertyIsEnumerable = {
f: f
};
var createPropertyDescriptor = function (bitmap, value) {
return {
enumerable: !(bitmap & 1),
configurable: !(bitmap & 2),
writable: !(bitmap & 4),
value: value
};
};
var toString = {}.toString;
var classofRaw = function (it) {
return toString.call(it).slice(8, -1);
};
var split = ''.split;
// fallback for non-array-like ES3 and non-enumerable old V8 strings
var indexedObject = fails(function () {
// throws an error in rhino, see https://github.com/mozilla/rhino/issues/346
// eslint-disable-next-line no-prototype-builtins
return !Object('z').propertyIsEnumerable(0);
}) ? function (it) {
return classofRaw(it) == 'String' ? split.call(it, '') : Object(it);
} : Object;
// `RequireObjectCoercible` abstract operation
// https://tc39.github.io/ecma262/#sec-requireobjectcoercible
var requireObjectCoercible = function (it) {
if (it == undefined) throw TypeError("Can't call method on " + it);
return it;
};
// toObject with fallback for non-array-like ES3 strings
var toIndexedObject = function (it) {
return indexedObject(requireObjectCoercible(it));
};
var isObject = function (it) {
return typeof it === 'object' ? it !== null : typeof it === 'function';
};
// `ToPrimitive` abstract operation
// https://tc39.github.io/ecma262/#sec-toprimitive
// instead of the ES6 spec version, we didn't implement @@toPrimitive case
// and the second argument - flag - preferred type is a string
var toPrimitive = function (input, PREFERRED_STRING) {
if (!isObject(input)) return input;
var fn, val;
if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;
if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
throw TypeError("Can't convert object to primitive value");
};
var hasOwnProperty = {}.hasOwnProperty;
var has = function (it, key) {
return hasOwnProperty.call(it, key);
};
var document = global_1.document;
// typeof document.createElement is 'object' in old IE
var EXISTS = isObject(document) && isObject(document.createElement);
var documentCreateElement = function (it) {
return EXISTS ? document.createElement(it) : {};
};
// Thank's IE8 for his funny defineProperty
var ie8DomDefine = !descriptors && !fails(function () {
return Object.defineProperty(documentCreateElement('div'), 'a', {
get: function () { return 7; }
}).a != 7;
});
var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
// `Object.getOwnPropertyDescriptor` method
// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor
var f$1 = descriptors ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {
O = toIndexedObject(O);
P = toPrimitive(P, true);
if (ie8DomDefine) try {
return nativeGetOwnPropertyDescriptor(O, P);
} catch (error) { /* empty */ }
if (has(O, P)) return createPropertyDescriptor(!objectPropertyIsEnumerable.f.call(O, P), O[P]);
};
var objectGetOwnPropertyDescriptor = {
f: f$1
};
var anObject = function (it) {
if (!isObject(it)) {
throw TypeError(String(it) + ' is not an object');
} return it;
};
var nativeDefineProperty = Object.defineProperty;
// `Object.defineProperty` method
// https://tc39.github.io/ecma262/#sec-object.defineproperty
var f$2 = descriptors ? nativeDefineProperty : function defineProperty(O, P, Attributes) {
anObject(O);
P = toPrimitive(P, true);
anObject(Attributes);
if (ie8DomDefine) try {
return nativeDefineProperty(O, P, Attributes);
} catch (error) { /* empty */ }
if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');
if ('value' in Attributes) O[P] = Attributes.value;
return O;
};
var objectDefineProperty = {
f: f$2
};
var hide = descriptors ? function (object, key, value) {
return objectDefineProperty.f(object, key, createPropertyDescriptor(1, value));
} : function (object, key, value) {
object[key] = value;
return object;
};
var setGlobal = function (key, value) {
try {
hide(global_1, key, value);
} catch (error) {
global_1[key] = value;
} return value;
};
var shared = createCommonjsModule(function (module) {
var SHARED = '__core-js_shared__';
var store = global_1[SHARED] || setGlobal(SHARED, {});
(module.exports = function (key, value) {
return store[key] || (store[key] = value !== undefined ? value : {});
})('versions', []).push({
version: '3.1.3',
mode: 'global',
copyright: '© 2019 Denis Pushkarev (zloirock.ru)'
});
});
var functionToString = shared('native-function-to-string', Function.toString);
var WeakMap = global_1.WeakMap;
var nativeWeakMap = typeof WeakMap === 'function' && /native code/.test(functionToString.call(WeakMap));
var id = 0;
var postfix = Math.random();
var uid = function (key) {
return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);
};
var keys = shared('keys');
var sharedKey = function (key) {
return keys[key] || (keys[key] = uid(key));
};
var hiddenKeys = {};
var WeakMap$1 = global_1.WeakMap;
var set, get, has$1;
var enforce = function (it) {
return has$1(it) ? get(it) : set(it, {});
};
var getterFor = function (TYPE) {
return function (it) {
var state;
if (!isObject(it) || (state = get(it)).type !== TYPE) {
throw TypeError('Incompatible receiver, ' + TYPE + ' required');
} return state;
};
};
if (nativeWeakMap) {
var store = new WeakMap$1();
var wmget = store.get;
var wmhas = store.has;
var wmset = store.set;
set = function (it, metadata) {
wmset.call(store, it, metadata);
return metadata;
};
get = function (it) {
return wmget.call(store, it) || {};
};
has$1 = function (it) {
return wmhas.call(store, it);
};
} else {
var STATE = sharedKey('state');
hiddenKeys[STATE] = true;
set = function (it, metadata) {
hide(it, STATE, metadata);
return metadata;
};
get = function (it) {
return has(it, STATE) ? it[STATE] : {};
};
has$1 = function (it) {
return has(it, STATE);
};
}
var internalState = {
set: set,
get: get,
has: has$1,
enforce: enforce,
getterFor: getterFor
};
var redefine = createCommonjsModule(function (module) {
var getInternalState = internalState.get;
var enforceInternalState = internalState.enforce;
var TEMPLATE = String(functionToString).split('toString');
shared('inspectSource', function (it) {
return functionToString.call(it);
});
(module.exports = function (O, key, value, options) {
var unsafe = options ? !!options.unsafe : false;
var simple = options ? !!options.enumerable : false;
var noTargetGet = options ? !!options.noTargetGet : false;
if (typeof value == 'function') {
if (typeof key == 'string' && !has(value, 'name')) hide(value, 'name', key);
enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');
}
if (O === global_1) {
if (simple) O[key] = value;
else setGlobal(key, value);
return;
} else if (!unsafe) {
delete O[key];
} else if (!noTargetGet && O[key]) {
simple = true;
}
if (simple) O[key] = value;
else hide(O, key, value);
// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
})(Function.prototype, 'toString', function toString() {
return typeof this == 'function' && getInternalState(this).source || functionToString.call(this);
});
});
var path = global_1;
var aFunction = function (variable) {
return typeof variable == 'function' ? variable : undefined;
};
var getBuiltIn = function (namespace, method) {
return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global_1[namespace])
: path[namespace] && path[namespace][method] || global_1[namespace] && global_1[namespace][method];
};
var ceil = Math.ceil;
var floor = Math.floor;
// `ToInteger` abstract operation
// https://tc39.github.io/ecma262/#sec-tointeger
var toInteger = function (argument) {
return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);
};
var min = Math.min;
// `ToLength` abstract operation
// https://tc39.github.io/ecma262/#sec-tolength
var toLength = function (argument) {
return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991
};
var max = Math.max;
var min$1 = Math.min;
// Helper for a popular repeating case of the spec:
// Let integer be ? ToInteger(index).
// If integer < 0, let result be max((length + integer), 0); else let result be min(length, length).
var toAbsoluteIndex = function (index, length) {
var integer = toInteger(index);
return integer < 0 ? max(integer + length, 0) : min$1(integer, length);
};
// `Array.prototype.{ indexOf, includes }` methods implementation
var createMethod = function (IS_INCLUDES) {
return function ($this, el, fromIndex) {
var O = toIndexedObject($this);
var length = toLength(O.length);
var index = toAbsoluteIndex(fromIndex, length);
var value;
// Array#includes uses SameValueZero equality algorithm
// eslint-disable-next-line no-self-compare
if (IS_INCLUDES && el != el) while (length > index) {
value = O[index++];
// eslint-disable-next-line no-self-compare
if (value != value) return true;
// Array#indexOf ignores holes, Array#includes - not
} else for (;length > index; index++) {
if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;
} return !IS_INCLUDES && -1;
};
};
var arrayIncludes = {
// `Array.prototype.includes` method
// https://tc39.github.io/ecma262/#sec-array.prototype.includes
includes: createMethod(true),
// `Array.prototype.indexOf` method
// https://tc39.github.io/ecma262/#sec-array.prototype.indexof
indexOf: createMethod(false)
};
var indexOf = arrayIncludes.indexOf;
var objectKeysInternal = function (object, names) {
var O = toIndexedObject(object);
var i = 0;
var result = [];
var key;
for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);
// Don't enum bug & hidden keys
while (names.length > i) if (has(O, key = names[i++])) {
~indexOf(result, key) || result.push(key);
}
return result;
};
// IE8- don't enum bug keys
var enumBugKeys = [
'constructor',
'hasOwnProperty',
'isPrototypeOf',
'propertyIsEnumerable',
'toLocaleString',
'toString',
'valueOf'
];
var hiddenKeys$1 = enumBugKeys.concat('length', 'prototype');
// `Object.getOwnPropertyNames` method
// https://tc39.github.io/ecma262/#sec-object.getownpropertynames
var f$3 = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
return objectKeysInternal(O, hiddenKeys$1);
};
var objectGetOwnPropertyNames = {
f: f$3
};
var f$4 = Object.getOwnPropertySymbols;
var objectGetOwnPropertySymbols = {
f: f$4
};
// all object keys, includes non-enumerable and symbols
var ownKeys = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {
var keys = objectGetOwnPropertyNames.f(anObject(it));
var getOwnPropertySymbols = objectGetOwnPropertySymbols.f;
return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;
};
var copyConstructorProperties = function (target, source) {
var keys = ownKeys(source);
var defineProperty = objectDefineProperty.f;
var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f;
for (var i = 0; i < keys.length; i++) {
var key = keys[i];
if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));
}
};
var replacement = /#|\.prototype\./;
var isForced = function (feature, detection) {
var value = data[normalize(feature)];
return value == POLYFILL ? true
: value == NATIVE ? false
: typeof detection == 'function' ? fails(detection)
: !!detection;
};
var normalize = isForced.normalize = function (string) {
return String(string).replace(replacement, '.').toLowerCase();
};
var data = isForced.data = {};
var NATIVE = isForced.NATIVE = 'N';
var POLYFILL = isForced.POLYFILL = 'P';
var isForced_1 = isForced;
var getOwnPropertyDescriptor$1 = objectGetOwnPropertyDescriptor.f;
/*
options.target - name of the target object
options.global - target is the global object
options.stat - export as static methods of target
options.proto - export as prototype methods of target
options.real - real prototype method for the `pure` version
options.forced - export even if the native feature is available
options.bind - bind methods to the target, required for the `pure` version
options.wrap - wrap constructors to preventing global pollution, required for the `pure` version
options.unsafe - use the simple assignment of property instead of delete + defineProperty
options.sham - add a flag to not completely full polyfills
options.enumerable - export as enumerable property
options.noTargetGet - prevent calling a getter on target
*/
var _export = function (options, source) {
var TARGET = options.target;
var GLOBAL = options.global;
var STATIC = options.stat;
var FORCED, target, key, targetProperty, sourceProperty, descriptor;
if (GLOBAL) {
target = global_1;
} else if (STATIC) {
target = global_1[TARGET] || setGlobal(TARGET, {});
} else {
target = (global_1[TARGET] || {}).prototype;
}
if (target) for (key in source) {
sourceProperty = source[key];
if (options.noTargetGet) {
descriptor = getOwnPropertyDescriptor$1(target, key);
targetProperty = descriptor && descriptor.value;
} else targetProperty = target[key];
FORCED = isForced_1(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);
// contained in target
if (!FORCED && targetProperty !== undefined) {
if (typeof sourceProperty === typeof targetProperty) continue;
copyConstructorProperties(sourceProperty, targetProperty);
}
// add a flag to not completely full polyfills
if (options.sham || (targetProperty && targetProperty.sham)) {
hide(sourceProperty, 'sham', true);
}
// extend global
redefine(target, key, sourceProperty, options);
}
};
// `IsArray` abstract operation
// https://tc39.github.io/ecma262/#sec-isarray
var isArray = Array.isArray || function isArray(arg) {
return classofRaw(arg) == 'Array';
};
// `ToObject` abstract operation
// https://tc39.github.io/ecma262/#sec-toobject
var toObject = function (argument) {
return Object(requireObjectCoercible(argument));
};
var createProperty = function (object, key, value) {
var propertyKey = toPrimitive(key);
if (propertyKey in object) objectDefineProperty.f(object, propertyKey, createPropertyDescriptor(0, value));
else object[propertyKey] = value;
};
var nativeSymbol = !!Object.getOwnPropertySymbols && !fails(function () {
// Chrome 38 Symbol has incorrect toString conversion
// eslint-disable-next-line no-undef
return !String(Symbol());
});
var Symbol$1 = global_1.Symbol;
var store$1 = shared('wks');
var wellKnownSymbol = function (name) {
return store$1[name] || (store$1[name] = nativeSymbol && Symbol$1[name]
|| (nativeSymbol ? Symbol$1 : uid)('Symbol.' + name));
};
var SPECIES = wellKnownSymbol('species');
// `ArraySpeciesCreate` abstract operation
// https://tc39.github.io/ecma262/#sec-arrayspeciescreate
var arraySpeciesCreate = function (originalArray, length) {
var C;
if (isArray(originalArray)) {
C = originalArray.constructor;
// cross-realm fallback
if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
else if (isObject(C)) {
C = C[SPECIES];
if (C === null) C = undefined;
}
} return new (C === undefined ? Array : C)(length === 0 ? 0 : length);
};
var SPECIES$1 = wellKnownSymbol('species');
var arrayMethodHasSpeciesSupport = function (METHOD_NAME) {
return !fails(function () {
var array = [];
var constructor = array.constructor = {};
constructor[SPECIES$1] = function () {
return { foo: 1 };
};
return array[METHOD_NAME](Boolean).foo !== 1;
});
};
var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');
var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;
var MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';
var IS_CONCAT_SPREADABLE_SUPPORT = !fails(function () {
var array = [];
array[IS_CONCAT_SPREADABLE] = false;
return array.concat()[0] !== array;
});
var SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');
var isConcatSpreadable = function (O) {
if (!isObject(O)) return false;
var spreadable = O[IS_CONCAT_SPREADABLE];
return spreadable !== undefined ? !!spreadable : isArray(O);
};
var FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;
// `Array.prototype.concat` method
// https://tc39.github.io/ecma262/#sec-array.prototype.concat
// with adding support of @@isConcatSpreadable and @@species
_export({ target: 'Array', proto: true, forced: FORCED }, {
concat: function concat(arg) { // eslint-disable-line no-unused-vars
var O = toObject(this);
var A = arraySpeciesCreate(O, 0);
var n = 0;
var i, k, length, len, E;
for (i = -1, length = arguments.length; i < length; i++) {
E = i === -1 ? O : arguments[i];
if (isConcatSpreadable(E)) {
len = toLength(E.length);
if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);
for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);
} else {
if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);
createProperty(A, n++, E);
}
}
A.length = n;
return A;
}
});
/**
* Bootstrap Table Georgian translation
* Author: Levan Lotuashvili <l.lotuashvili@gmail.com>
*/
$.fn.bootstrapTable.locales['ka-GE'] = {
formatLoadingMessage: function formatLoadingMessage() {
return 'იტვირთება, გთხოვთ მოიცადოთ';
},
formatRecordsPerPage: function formatRecordsPerPage(pageNumber) {
return "".concat(pageNumber, " \u10E9\u10D0\u10DC\u10D0\u10EC\u10D4\u10E0\u10D8 \u10D7\u10D8\u10D7\u10DD \u10D2\u10D5\u10D4\u10E0\u10D3\u10D6\u10D4");
},
formatShowingRows: function formatShowingRows(pageFrom, pageTo, totalRows, totalNotFiltered) {
if (totalNotFiltered !== undefined && totalNotFiltered > 0 && totalNotFiltered > totalRows) {
return "\u10DC\u10D0\u10E9\u10D5\u10D4\u10DC\u10D4\u10D1\u10D8\u10D0 ".concat(pageFrom, "-\u10D3\u10D0\u10DC ").concat(pageTo, "-\u10DB\u10D3\u10D4 \u10E9\u10D0\u10DC\u10D0\u10EC\u10D4\u10E0\u10D8 \u10EF\u10D0\u10DB\u10E3\u10E0\u10D8 ").concat(totalRows, "-\u10D3\u10D0\u10DC (filtered from ").concat(totalNotFiltered, " total rows)");
}
return "\u10DC\u10D0\u10E9\u10D5\u10D4\u10DC\u10D4\u10D1\u10D8\u10D0 ".concat(pageFrom, "-\u10D3\u10D0\u10DC ").concat(pageTo, "-\u10DB\u10D3\u10D4 \u10E9\u10D0\u10DC\u10D0\u10EC\u10D4\u10E0\u10D8 \u10EF\u10D0\u10DB\u10E3\u10E0\u10D8 ").concat(totalRows, "-\u10D3\u10D0\u10DC");
},
formatSRPaginationPreText: function formatSRPaginationPreText() {
return 'previous page';
},
formatSRPaginationPageText: function formatSRPaginationPageText(page) {
return "to page ".concat(page);
},
formatSRPaginationNextText: function formatSRPaginationNextText() {
return 'next page';
},
formatDetailPagination: function formatDetailPagination(totalRows) {
return "Showing ".concat(totalRows, " rows");
},
formatClearSearch: function formatClearSearch() {
return 'Clear Search';
},
formatSearch: function formatSearch() {
return 'ძებნა';
},
formatNoMatches: function formatNoMatches() {
return 'მონაცემები არ არის';
},
formatPaginationSwitch: function formatPaginationSwitch() {
return 'გვერდების გადამრთველის დამალვა/გამოჩენა';
},
formatPaginationSwitchDown: function formatPaginationSwitchDown() {
return 'Show pagination';
},
formatPaginationSwitchUp: function formatPaginationSwitchUp() {
return 'Hide pagination';
},
formatRefresh: function formatRefresh() {
return 'განახლება';
},
formatToggle: function formatToggle() {
return 'ჩართვა/გამორთვა';
},
formatToggleOn: function formatToggleOn() {
return 'Show card view';
},
formatToggleOff: function formatToggleOff() {
return 'Hide card view';
},
formatColumns: function formatColumns() {
return 'სვეტები';
},
formatColumnsToggleAll: function formatColumnsToggleAll() {
return 'Toggle all';
},
formatFullscreen: function formatFullscreen() {
return 'Fullscreen';
},
formatAllRows: function formatAllRows() {
return 'All';
},
formatAutoRefresh: function formatAutoRefresh() {
return 'Auto Refresh';
},
formatExport: function formatExport() {
return 'Export data';
},
formatJumpTo: function formatJumpTo() {
return 'GO';
},
formatAdvancedSearch: function formatAdvancedSearch() {
return 'Advanced search';
},
formatAdvancedCloseButton: function formatAdvancedCloseButton() {
return 'Close';
}
};
$.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['ka-GE']);
}));

Binary file not shown.

After

Width:  |  Height:  |  Size: 404 KiB

View File

@ -0,0 +1,252 @@
package kr.co.i4way.manage.controller;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import kr.co.i4way.manage.model.CenterInfoVo;
import kr.co.i4way.manage.model.CommonInfoVo;
import kr.co.i4way.manage.model.FormBasedFileVo;
import kr.co.i4way.manage.model.ImageInfoVo;
import kr.co.i4way.manage.model.LoginVo;
import kr.co.i4way.manage.model.ObjInfoVo;
import kr.co.i4way.manage.model.UserInfoVo;
import kr.co.i4way.manage.model.WallInfoVo;
import kr.co.i4way.manage.service.ManageService;
import kr.co.i4way.manage.util.FileUploadUtil;
@Controller
public class ManageController {
Logger logger = LoggerFactory.getLogger(this.getClass());
@Autowired(required=true)
private ManageService service;
@RequestMapping(value="/login")
public ModelAndView login() throws Exception{
ModelAndView mv = new ModelAndView("/login/login");
return mv;
}
@RequestMapping(value="/main")
public ModelAndView main() throws Exception{
ModelAndView mv = new ModelAndView("/main/main");
return mv;
}
@RequestMapping(value="/main_info")
public ModelAndView main_info() throws Exception{
ModelAndView mv = new ModelAndView("/manage/wall_info");
return mv;
}
@RequestMapping(value="/center_info")
public ModelAndView center_info() throws Exception{
ModelAndView mv = new ModelAndView("/manage/center_info");
return mv;
}
@RequestMapping(value="/user_info")
public ModelAndView user_info() throws Exception{
ModelAndView mv = new ModelAndView("/manage/user_info");
return mv;
}
@RequestMapping(value="/obj_info")
public ModelAndView obj_info() throws Exception{
ModelAndView mv = new ModelAndView("/manage/obj_info");
return mv;
}
@RequestMapping(value="/image_info")
public ModelAndView image_info() throws Exception{
ModelAndView mv = new ModelAndView("/manage/image_info");
return mv;
}
@RequestMapping(value="/image_selector")
public ModelAndView imageSelector() throws Exception{
ModelAndView mv = new ModelAndView("/manage/image_selector");
return mv;
}
// http://localhost/manage/requestLogin
@RequestMapping(value="/manage/requestLogin")
public String requestLogin(LoginVo avo
, String targetUri
, RedirectAttributes ra
, HttpSession session) throws NullPointerException, Exception{
int mapSize = 0;
Map<String,Object> map = service.getLoginInfo(avo);
if(map != null){
mapSize = map.size();
if(mapSize > 0) {
logger.info("로그인 성공!!");
session.setAttribute("user_id", map.get("USER_ID"));
session.setAttribute("user_name", map.get("USER_NAME"));
session.setAttribute("user_centers", map.get("CENTER_ID"));
session.setAttribute("user_grade", map.get("GRADE"));
session.setAttribute("user_custom1", map.get("CUSTOM1"));
session.setAttribute("user_custom2", map.get("CUSTOM2"));
session.setMaxInactiveInterval(60 * 60);//시간 셋팅.60 * 10->10분 60 * 60 * 1->1시간
targetUri = "/main";
return "redirect:"+targetUri;//메인으로 가버리면 다시 클릭클릭해서 찾아가야하니 일케 해당페이지로 남아있게해줌
}
}
//로그인 실패(로그인 페이지 다시 리다이렉트)
logger.info("로그인 실패!!");
ra.addFlashAttribute("msg","아이디 또는 패스워드가 일치하지 않습니다.");
return "redirect:/login";
}
@RequestMapping("/getWallInfo_Manage")
public @ResponseBody Map<String , Object> getWallInfo(@ModelAttribute("wallinfovo") WallInfoVo wallinfovo) throws Exception{
Map<String, Object> rtnObject = new HashMap<String, Object>();
wallinfovo.setQuery_arry(wallinfovo.getCenter_id().split(","));
rtnObject.put("list", service.getWallInfo_Manage(wallinfovo));
rtnObject.put("param", wallinfovo);
return rtnObject;
}
@RequestMapping("/getCenterInfo_Manage")
public @ResponseBody Map<String , Object> getCenterInfo_Manage(@ModelAttribute("centerinfovo") CenterInfoVo centerinfovo) throws Exception{
Map<String, Object> rtnObject = new HashMap<String, Object>();
rtnObject.put("list", service.getCenterInfo_Manage(centerinfovo));
rtnObject.put("param", centerinfovo);
return rtnObject;
}
@RequestMapping("/insertCenterInfo")
public @ResponseBody Map<String , Object> insertCenterInfo(
@ModelAttribute("centerinfovo") CenterInfoVo centerinfovo) throws Exception{
service.insertCenterInfo(centerinfovo);
Map<String, Object> rtnObject = new HashMap<String, Object>();
rtnObject.put("list", service.getCenterInfo_Manage(centerinfovo));
rtnObject.put("param", centerinfovo);
return rtnObject;
}
@RequestMapping("/updateCenterInfo")
public @ResponseBody Map<String , Object> updateCenterInfo(
@ModelAttribute("centerinfovo") CenterInfoVo centerinfovo) throws Exception{
service.updateCenterInfo(centerinfovo);
Map<String, Object> rtnObject = new HashMap<String, Object>();
rtnObject.put("list", service.getCenterInfo_Manage(centerinfovo));
rtnObject.put("param", centerinfovo);
return rtnObject;
}
@RequestMapping("/deleteCenterInfo")
public @ResponseBody Map<String , Object> deleteCenterInfo(
@ModelAttribute("centerinfovo") CenterInfoVo centerinfovo) throws Exception{
service.deleteCenterInfo(centerinfovo);
Map<String, Object> rtnObject = new HashMap<String, Object>();
rtnObject.put("list", service.getCenterInfo_Manage(centerinfovo));
rtnObject.put("param", centerinfovo);
return rtnObject;
}
@RequestMapping("/getUserInfo_Manage")
public @ResponseBody Map<String , Object> getUserInfo_Manage(@ModelAttribute("userinfovo") UserInfoVo userinfovo) throws Exception{
Map<String, Object> rtnObject = new HashMap<String, Object>();
rtnObject.put("list", service.getUserInfo_Manage(userinfovo));
rtnObject.put("param", userinfovo);
return rtnObject;
}
@RequestMapping("/getObjInfo_Manage")
public @ResponseBody Map<String , Object> getObjInfo_Manage(@ModelAttribute("objinfovo") ObjInfoVo objinfovo) throws Exception{
Map<String, Object> rtnObject = new HashMap<String, Object>();
rtnObject.put("list", service.getObjInfo_Manage(objinfovo));
rtnObject.put("param", objinfovo);
return rtnObject;
}
@RequestMapping("/getImageInfo_Manage")
public @ResponseBody Map<String , Object> getImageInfo_Manage(@ModelAttribute("imageinfovo") ImageInfoVo imageinfovo) throws Exception{
Map<String, Object> rtnObject = new HashMap<String, Object>();
rtnObject.put("list", service.getImageInfo_Manage(imageinfovo));
rtnObject.put("param", imageinfovo);
return rtnObject;
}
@RequestMapping("/getComCode")
public @ResponseBody Map<String , Object> getCommCode(@ModelAttribute("commoninfovo") CommonInfoVo commoninfovo) throws Exception{
Map<String, Object> rtnObject = new HashMap<String, Object>();
rtnObject.put("list", service.getCommCode(commoninfovo));
rtnObject.put("param", commoninfovo);
return rtnObject;
}
@RequestMapping("/getImages")
public @ResponseBody Map<String , Object> getImages(@ModelAttribute("imageinfovo") ImageInfoVo imageinfovo) throws Exception{
Map<String, Object> rtnObject = new HashMap<String, Object>();
rtnObject.put("list", service.getImages(imageinfovo));
rtnObject.put("param", imageinfovo);
return rtnObject;
}
@RequestMapping("/saveWallInfo")
public @ResponseBody Map<String , Object> saveWallInfo(
@ModelAttribute("wallinfovo") WallInfoVo wallinfovo) throws Exception{
service.saveWallInfo(wallinfovo);
Map<String, Object> rtnObject = new HashMap<String, Object>();
wallinfovo.setQuery_arry(wallinfovo.getCenter_id().split(","));
rtnObject.put("list", service.getWallInfo_Manage(wallinfovo));
rtnObject.put("param", wallinfovo);
return rtnObject;
}
@ResponseBody
@RequestMapping(value="/ckeditor/ckeditor5ImageUpload", method= {RequestMethod.POST, RequestMethod.GET})
public String ckeditor5ImageUpload(HttpServletRequest request, HttpServletResponse response, @RequestParam MultipartFile upload) throws Exception{
String url = null;
try {
final String uploadDir = "/images/upload";
//final String uploadDir = "D://upload";
final long maxFileSize = 1024 * 1024* 600;
List<FormBasedFileVo> list = FileUploadUtil.uploadFiles(request, uploadDir, maxFileSize);
if(list == null) {
return ("업로드 실패. 에러가 발생했습니다.");
}else {
if(list.size() > 0) {
FormBasedFileVo vo = list.get(0);
url = request.getContextPath() +
"/ckeditor/ckeditor5ImageUpload?" +
"path=" + vo.getServerSubPath() +
"&physical=" + vo.getPhysicalName() +
"&contentType=" + vo.getContentType();
}
return "업로드 성공. " + url + "";
}
}catch(Exception e) {
e.printStackTrace();
}finally {
}
return ("업로드 실패. 에러가 발생했습니다.");
}
}

View File

@ -0,0 +1,151 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!doctype html>
<html lang="ko">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<%@ include file="/WEB-INF/include/include-header3.jspf" %>
<!-- Multi Select-->
<link href="<c:url value='/vendor/bootstrap-multiselect-2.0/dist/css/bootstrap-multiselect.css' />" rel="stylesheet">
<script src="<c:url value='/vendor/bootstrap-multiselect-2.0/dist/js/bootstrap-multiselect.js' />"></script>
<style type="text/css">
.col-sm-2,.col-sm-3,.col-sm-4 {
position: relative;
width: 100%;
padding-right: 15px;
padding-left: 15px;
padding-top: 15px;
padding-bottom: 15px;
}
.valign-wrapper {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
}
.bd-example {
position: relative;
padding: 5px;
border: solid #dee2e6;
margin-right: 0;
margin-left: 0;
border-width: 1px;
border-radius: .25rem .25rem .25rem .25rem;
}
.mb-3, .my-3 {
margin-bottom: 0rem!important;
}
</style>
<meta name="theme-color" content="#7952b3">
<title>장표선택</title>
</head>
<body>
<form id="frm" name="frm" enctype="multipart/form-data">
<input type="hidden" class="form-control" id="wall_id" name="wall_id">
<div class="container-fluid">
<div class="row">
<div class="col-12">
<table
id="table"
class="table-sm"
data-virtual-scroll="true"
data-sort-name="id"
data-sort-order="asc"
data-height="400"
data-sortable="true"
data-pagination="false"
data-search="false"
data-single-select="false"
data-click-to-select="true"
data-show-toggle="false"
data-use-row-attr-func="true"
data-reorderable-rows="false"
style="text-align: center;">
<thead style="text-align: center;">
<tr>
<th data-field="state" data-checkbox="true"></th>
<th data-field="WALL_ID" data-visible="false">ID</th>
<th data-field="CENTER_NAME" data-width="20%">센터명</th>
<th data-field="SCREEN_NAME" data-width="40%">화면명</th>
<th data-field="WALL_NAME" data-width="40%">장표명</th>
<th data-field="CENTER_ID" data-visible="false">센터ID</th>
<th data-field="SCREEN_ID" data-visible="false">SCREEN_ID</th>
</tr>
</thead>
</table>
<div style="text-align: right; margin-top: 0.5vw;">
<button type="button" class="btn btn-sm btn-primary" id="btnAdd">장표추가</button>
<button type="button" class="btn btn-sm btn-primary" id="btnCancel">장표제거</button>
</div>
</div>
</div>
</div>
</form>
<script>
$("#btnAdd").click(function(e) {
var selectArray = $('#table').bootstrapTable('getSelections');
for(var i=0; i<selectArray.length; i++){
$("#wall_id").val(selectArray[i].WALL_ID);
insertInfo();
}
//opener.getData();
//self.close();
});
function insertInfo(){
var queryString = $("form[name=frm]").serialize() ;
$.ajax({
url:"<c:url value='/insertWall_Custom'/>",
data : queryString,
type:"post",
datatype:"json",
success:function(args){
},
error : function(x,o,e){
var msg = "에러발생 \n" + x.status + " : " + o + " : " + e;
alert(msg);
}
});
}
$('#button-nav').on('click','button', function (evt) {
var arr = this.value.split("%");
opener.setImage($("#img_type").val(), arr[0],arr[1],arr[2],arr[3]);
self.close();
});
$(function() {
$('#table').bootstrapTable();
getData();
});
function getData(){
var queryString = $("form[name=frm]").serialize() ;
$.ajax({
url:"<c:url value='/getWallList'/>",
data : queryString,
type:"post",
datatype:"json",
success:function(args){
$('#table').bootstrapTable('load', args.list);
},
error : function(x,o,e){
var msg = "에러발생 \n" + x.status + " : " + o + " : " + e;
alert(msg);
}
});
}
</script>
</body>
</html>

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,65 @@
# Print
Adds a button to the toolbar for printing the table in a predefined configurable format.
## Usage
```html
<script src="extensions/print/bootstrap-table-print.js"></script>
```
## Options
### showPrint
* type: Boolean
* description: Set true to show the Print button on the toolbar.
* default: `false`
### printAsFilteredAndSortedOnUI
* type: Boolean
* description: When true - print table as sorted and filtered on UI. Please note that if true is set, along with explicit predefined print options for filtering and sorting (printFilter, printSortOrder, printSortColumn)- then they will be applied on data already filtered and sorted by UI controls. For printing data as filtered and sorted on UI - do not set these 3 options: printFilter, printSortOrder, printSortColumn
* default: `true`
### printSortColumn
* type: String
* description: set column field name to sort by for the printed table
* default: `undefined`
### printSortOrder
* type: String
* description: Valid values: 'asc', 'desc'. Relevant only if printSortColumn is set
* default: `'asc'`
### printPageBuilder
* type: Function
* description: Receive html `<table>` element as string parameter, returns html string for printing. Used for styling and adding header or footer.
* default: `function(table){return printPageBuilderDefault(table)}`
## Column options
### printFilter
* type: String
* description: set value to filter the printed data by this column.
* default: `undefined`
### printIgnore
* type: Boolean
* description: set true to hide this column in the printed page.
* default: `false`
### printFormatter
* type: Function
* description: function(value, row, index) - returns a string. Formats the cell values for this column in the printed table. Function behaviour is similar to the 'formatter' column option
* default: `undefined`
## Icons
* print: `'glyphicon-print icon-share'`

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,126 @@
//! moment.js locale configuration
//! locale : Belarusian [be]
//! author : Dmitry Demidov : https://github.com/demidov91
//! author: Praleska: http://praleska.pro/
//! Author : Menelion Elensúle : https://github.com/Oire
import moment from '../moment';
function plural(word, num) {
var forms = word.split('_');
return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);
}
function relativeTimeWithPlural(number, withoutSuffix, key) {
var format = {
'ss': withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',
'mm': withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',
'hh': withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',
'dd': 'дзень_дні_дзён',
'MM': 'месяц_месяцы_месяцаў',
'yy': 'год_гады_гадоў'
};
if (key === 'm') {
return withoutSuffix ? 'хвіліна' : 'хвіліну';
}
else if (key === 'h') {
return withoutSuffix ? 'гадзіна' : 'гадзіну';
}
else {
return number + ' ' + plural(format[key], +number);
}
}
export default moment.defineLocale('be', {
months : {
format: 'студзеня_лютага_сакавікарасавікараўня_чэрвеня_ліпеня_жніўня_верасня_кастрычнікаістапада_снежня'.split('_'),
standalone: 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split('_')
},
monthsShort : 'студ_лют_сак_красрав_чэрв_ліп_жнів_вераст_ліст_снеж'.split('_'),
weekdays : {
format: 'нядзелю_панядзелак_аўторак_серадуацвер_пятніцу_суботу'.split('_'),
standalone: 'нядзеля_панядзелак_аўторак_серадаацвер_пятніца_субота'.split('_'),
isFormat: /\[ ?[Ууў] ?(?:мінулую|наступную)? ?\] ?dddd/
},
weekdaysShort : 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
weekdaysMin : 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD.MM.YYYY',
LL : 'D MMMM YYYY г.',
LLL : 'D MMMM YYYY г., HH:mm',
LLLL : 'dddd, D MMMM YYYY г., HH:mm'
},
calendar : {
sameDay: '[Сёння ў] LT',
nextDay: '[Заўтра ў] LT',
lastDay: '[Учора ў] LT',
nextWeek: function () {
return '[У] dddd [ў] LT';
},
lastWeek: function () {
switch (this.day()) {
case 0:
case 3:
case 5:
case 6:
return '[У мінулую] dddd [ў] LT';
case 1:
case 2:
case 4:
return '[У мінулы] dddd [ў] LT';
}
},
sameElse: 'L'
},
relativeTime : {
future : 'праз %s',
past : '%s таму',
s : 'некалькі секунд',
m : relativeTimeWithPlural,
mm : relativeTimeWithPlural,
h : relativeTimeWithPlural,
hh : relativeTimeWithPlural,
d : 'дзень',
dd : relativeTimeWithPlural,
M : 'месяц',
MM : relativeTimeWithPlural,
y : 'год',
yy : relativeTimeWithPlural
},
meridiemParse: /ночы|раніцы|дня|вечара/,
isPM : function (input) {
return /^(дня|вечара)$/.test(input);
},
meridiem : function (hour, minute, isLower) {
if (hour < 4) {
return 'ночы';
} else if (hour < 12) {
return 'раніцы';
} else if (hour < 17) {
return 'дня';
} else {
return 'вечара';
}
},
dayOfMonthOrdinalParse: /\d{1,2}-(і|ы|га)/,
ordinal: function (number, period) {
switch (period) {
case 'M':
case 'd':
case 'DDD':
case 'w':
case 'W':
return (number % 10 === 2 || number % 10 === 3) && (number % 100 !== 12 && number % 100 !== 13) ? number + '-і' : number + '-ы';
case 'D':
return number + '-га';
default:
return number;
}
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 7 // The week that contains Jan 1st is the first week of the year.
}
});

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,11 @@
Page Transitions
=========
A showcase collection of various page transition effects using CSS animations.
[article on Codrops](http://tympanus.net/codrops/?p=15001)
[demo](http://tympanus.net/Development/PageTransitions/)
[LICENSING & TERMS OF USE](http://tympanus.net/codrops/licensing/)

View File

@ -0,0 +1,922 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
String cntx = request.getContextPath();
%>
<!DOCTYPE html>
<html lang="ko">
<head>
<%@ include file="/WEB-INF/include/include-header.jspf" %>
<link rel="stylesheet" href="<%=cntx%>/vendor/bootstrap-multiselect-2.0/dist/css/bootstrap-multiselect.css" type="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>상담사별 현황</title>
<script type="text/javascript" src="<%=cntx%>/vendor/bootstrap-multiselect-2.0/dist/js/bootstrap-multiselect.js"></script>
<style type="text/css">
html, body {
height: 98%
}
*{margin:0; padding:0;}
body{font:12px "맑은고딕";margin:5px;}
.jui .navbar {
padding: 10px 15px 5px 15px;
}
.alert {
padding: 2px 2px 2px 10px;
}
.container-fluid {
width: 100%;
padding-right: 0px;
padding-left: 0px;
}
.navbar {
color: rgb(51, 51, 51);
background-color: rgb(255, 255, 255);
background-image: -webkit-linear-gradient(top, rgb(255, 255, 255) 0%, rgb(230, 230, 230) 100%);
box-shadow: rgba(0, 0, 0, 0.05) 0px 1px 2px inset;
border-width: 1px;
border-style: solid;
border-color: rgb(217, 217, 217);
border-image: initial;
padding: 10px 10px 10px 10px;
margin-bottom: 10px;
font-size: 12px;
overflow: visible;
border-radius: 5px;
}
.card-header {
padding: 6px 2px 2px 2px;
}
.card-body {
padding: 1px;
}
</style>
<script type="text/javascript">
var tmpdate = new Date();
var ws;
var current_array = [];
var ready_array = [];
var talk_array = [];
var acw_array = [];
var nr1_array = [];
var nr34_array = [];
var nr2_array = [];
var deptname = "파크";
var icon = "";
function lpad(s,c,n){
if(!s || !c || s.length >= n){
return s;
}
var max = (n - s.length)/c.length;
for(var i=0; i<max; i++){
s=c+s;
}
return s;
}
function interceptionExtno(extNo){
    $.ajax({
        type: "POST",
        url: "http://localhost:5312/requestListen.do",
        data : "param={\"rpt\":\"\",\"rnm\":\"stateview" +
                    "\",\"rno\":\"" + extNo + 
                    "\",\"rip\":\"172.22.240.54" +
                    "\",\"rcn\":\"" + '-1' +
                    "\",\"uid\":\"" + '' +
                    "\",\"unm\":\"" + '' +
                    "\"}",
        dataType: "jsonp",
        timeout: 10000,
        contentType: "application/x-www-form-urlencoded; charset=UTF-8",
        error:function(data, a, b) {
            alert("청취요청오류입니다");
        }
    });
}
/*
$(function(){
document.getElementById('gubun').value = "1_106";
var queryString = $("form[name=frm]").serialize();
$.ajax({
url:"<%=cntx%>/ctiInfo/agentGroupList.do",
data : queryString,
type:"post",
datatype:"json",
success:function(args){
var frm1 = document.frm;
var op;
//frm1.selGroup.options.length = 0;
if(args.row != null){
for(var i=0; i<args.rows.length; i++){
op = new Option();
op.value = args.rows[i].OBJ_ID;
op.text = args.rows[i].OBJ_NM;
frm1.selGroup.options.add(op);
}
}
},
error : function(x,o,e){
var msg = "에러발생 \n" + x.status + " : " + o + " : " + e;
alert(msg);
}
});
});
*/
//상담그룹에 속하는 상담사 목록 리턴
function getAgentList(tgtGrpId){
var queryString = $("form[name=frm]").serialize() ;
$.ajax({
url:"<%=cntx%>/ctiInfo/agentList.do",
type:"post",
data : queryString,
datatype:"json",
success:function(args){
$('#selAgent').multiselect();
var data = [];
for(var j=0; j<args.rows.length; j++){
var group = {label: args.rows[j].OBJECT_NM,
value: args.rows[j].OBJECT_ID
}
data.push(group);
}
$('#selAgent').multiselect('dataprovider', data);
},
error : function(x,o,e){
var msg = "에러발생 \n" + x.status + " : " + o + " : " + e;
alert(msg);
}
});
}
//"웹소켓 접속" 버튼을 클릭했을때
function btnLogin_onclick() {
if(ws != null){
ws.close();
ws = null;
}
//웹소켓을 지원하는 브라우저이면
if ("WebSocket" in window) {
//웹소켓 서버에 접속한다.
ws = new WebSocket("ws://172.22.240.23:14003");
//ws = new WebSocket("ws://127.0.0.1:14003");
//웹소켓이 접속되었음.
ws.onopen = function() {
//var sendstr = "REGIST|" + "STAT^2000";
var sendstr = "REGIST|" + "STAT^1234567";
ws.send(sendstr);
};
//웹소켓 서버에서 메세지가 전송되었음.
ws.onmessage = function(evt) {
EventHandler(evt.data);
};
//웹소켓이 종료되었음.
ws.onclose = function() {
//document.getElementById("ConnectYn").value = "연결끊김";
//document.getElementById("btnLogin").disabled = false;
//document.getElementById("btnLogout").disabled = true;
//flag = true;
};
//웹소켓 접속중 에러가 발생하였음.
ws.onerror = function(e) {
alert("Server error:" + e);
};
} else {
alert("브라우저가 웹소켓을 지원하지 않습니다.");
}
}
//"웹소켓 끊기" 버튼을 클릭했을때
function btnLogout_onclick() {
ws.close();
}
//ws.onmessage에서 받은 CTI 이벤트를 파싱하고 처리한다.
function EventHandler(evtStr){
var array_Stat;
array_EvtStr = splitString(evtStr, "_");
if(array_EvtStr != null){
for(var i=0; i<array_EvtStr.length; i++){
array_Stat = null;
array_Stat = splitString(array_EvtStr[i], "=");
if(array_Stat != null){
if(array_Stat[0] == "PARK.STAT"){ //센터현황
STAT_Process(array_Stat[1]);
}else if(array_Stat[0] == "PARK.CURRENT"){ //상담사별 상태
CURRENT_Process(array_Stat[1]);
}else if(array_Stat[0] == "MALL.STAT"){ //센터현황
STAT_Process(array_Stat[1]);
}else if(array_Stat[0] == "MALL.CURRENT"){ //상담사별 상태
CURRENT_Process(array_Stat[1]);
}
}
}
}
}
function fnSelectScreen(args){
}
//상담사별 상태
//사번*상태코드*지속시간*성명*전화번호
function CURRENT_Process(args){
var statName = "";
current_array = []; //상세정보
ready_array = []; //대기
talk_array = []; //통화중
acw_array = []; //후처리
nr1_array = []; //휴식
nr34_array = []; //교육/회의
nr2_array = []; //식사
array_Str = splitString(args, "@");
if(array_Str != null){
if(array_Str.length > 0){
for(var j=0; j < array_Str.length; j++){
statStrArray = splitString(array_Str[j], "*");
var obj = new Object();
obj.dept = deptname;
obj.emp = statStrArray[0];
obj.name = statStrArray[3];
obj.ext = statStrArray[5];
statName = getStatName(statStrArray[1]);
obj.stat = statName;
obj.icon = "<font size='3'><i class='" +icon+ "'></i></font>";
obj.stat_org = statStrArray[1];
obj.telno = statStrArray[4];
obj.time = timeFormat(statStrArray[2]);
obj.time_org = parseInt(statStrArray[2]);
obj.ib = statStrArray[6];
obj.ob = statStrArray[7];
obj.rec = "<i class='fa fa-headphones' style='cursor: pointer;' onClick='interceptionExtno("+statStrArray[5]+");'></i>";
current_array.push(obj);
if(statStrArray[1] == "4"){ //대기
obj.gbn = "ready";
ready_array.push(obj);
}else if(statStrArray[1] == "19" || statStrArray[1] == "20" || statStrArray[1] == "21" || statStrArray[1] == "22" || statStrArray[1] == "26"){ //인바운드, 아웃바운드, 내선, 컨설트, unKnown
obj.gbn = "talk";
talk_array.push(obj);
}else if(statStrArray[1] == "9"){ //후처리
obj.gbn = "acw";
acw_array.push(obj);
}else if(statStrArray[1] == "81"){ //휴식
obj.gbn = "nr1";
nr1_array.push(obj);
}else if(statStrArray[1] == "83" || statStrArray[1] == "84"){ //교육, 업무
obj.gbn = "nr34";
nr34_array.push(obj);
}else if(statStrArray[1] == "82"){ //식사
obj.gbn = "nr2";
nr2_array.push(obj);
}
}
current_array.sort(function(a, b) { // 오름차순
return a.time_org < b.time_org ? -1 : a.time_org > b.time_org ? 1 : 0; //이름 오름차순
//return a.name < b.name ? -1 : a.name < b.name ? 1 : 0; //이름 내임차순
//return a.emp < b.emp ? -1 : a.emp > b.emp ? 1 : 0; //사번 오름차순
//return a.emp < b.emp ? -1 : a.emp < b.emp ? 1 : 0; //사번 내림착순
});
ready_array.sort(function(a, b) { // 오름차순
return a.time_org < b.time_org ? -1 : a.time_org < b.time_org ? 1 : 0; //이름 오름차순
});
talk_array.sort(function(a, b) { // 오름차순
return a.time_org < b.time_org ? -1 : a.time_org < b.time_org ? 1 : 0; //이름 오름차순
});
acw_array.sort(function(a, b) { // 오름차순
return a.time_org < b.time_org ? -1 : a.time_org < b.time_org ? 1 : 0; //이름 오름차순
});
nr1_array.sort(function(a, b) { // 오름차순
return a.time_org < b.time_org ? -1 : a.time_org < b.time_org ? 1 : 0; //이름 오름차순
});
nr34_array.sort(function(a, b) { // 오름차순
return a.time_org < b.time_org ? -1 : a.time_org < b.time_org ? 1 : 0; //이름 오름차순
});
nr2_array.sort(function(a, b) { // 오름차순
return a.time_org < b.time_org ? -1 : a.time_org < b.time_org ? 1 : 0; //이름 오름차순
});
$('#table_detail').bootstrapTable('load', current_array); //상세 테이블 데이터 세팅
$('#table_detail').bootstrapTable('mergeCells', {index: 0, field: 'dept', rowspan: current_array.length}); //상세 테이블 첫째컬럼 머지
$('#table_ready').bootstrapTable('load', ready_array); //간략 텝 대기 테이블 세팅
$('#cnt_ready').val(ready_array.length); //대기중 카운트
$('#table_talk').bootstrapTable('load', talk_array); //간략 텝 통화중 테이블 세팅
$('#cnt_talk').val(talk_array.length); //통화중 카운트
$('#table_acw').bootstrapTable('load', acw_array); //간략 텝 후처리 테이블 세팅
$('#cnt_acw').val(acw_array.length); //후처리 카운트
$('#table_nr_1').bootstrapTable('load', nr1_array); //간략 텝 휴식 테이블 세팅
$('#cnt_nr_1').val(nr1_array.length); //휴식 카운트
$('#table_nr_34').bootstrapTable('load', nr34_array); //간략 텝 교육/회의 테이블 세팅
$('#cnt_nr_34').val(nr34_array.length); //교육/회의 카운트
$('#table_nr_2').bootstrapTable('load', nr2_array); //간략 텝 식사중 테이블 세팅
$('#cnt_nr_2').val(nr2_array.length); //식사 카운트
}
}
}
//센터 현황
//대기콜수^로그인수^대기상담사^통화중(인,아웃)^이석^후처리^통화중(인,아웃,내선,컨설트)^인바운드통화^아웃바운드통화
function STAT_Process(args){
array_Str = splitString(args, "^");
document.getElementById("WaitCall").value = array_Str[0];
document.getElementById("LoginAgent").value = array_Str[1];
document.getElementById("ReadyAgent").value = array_Str[2];
document.getElementById("TalkAgent").value = array_Str[6];
document.getElementById("NotreadyAgent").value = array_Str[4];
document.getElementById("AcwAgent").value = array_Str[5];
var tmpEtc = array_Str[1] - array_Str[2] - array_Str[6] - array_Str[4] - array_Str[5];
if(tmpEtc >= 0){
document.getElementById("etcAgent").value = tmpEtc;
}else {
document.getElementById("etcAgent").value = 0;
}
}
function splitString(arrayString, splitChar) {
if (arrayString == null || splitChar == null) {
return null;
}
return arrayString.split(splitChar);
}
function clearLog(){
var x = document.getElementById("log");
x.innerHTML = "";
}
function timeFormat(seconds) {
var rtnval = "";
if(seconds == "" || seconds == null || seconds == NaN){
rtnval = "00:00:00";
}else{
var pad = function(x) { return (x < 10) ? "0"+x : x; }
rtnval = pad(parseInt(seconds / (60*60))) + ":" +
pad(parseInt(seconds / 60 % 60)) + ":" +
pad(seconds % 60);
}
if(rtnval == "NaN:NaN:NaN"){
rtnval = "00:00:00";
}
return rtnval;
}
function getStatName(statValue){
var rtnName = "";
switch(statValue) {
case("0"):
rtnName = "모니터링 안함";
icon = "";
break;
case("1"):
rtnName = "모니터링중";
icon = "";
break;
case("2"):
rtnName = "로그인";
icon = "fa fa-power-off";
break;
case("3"):
rtnName = "수화기 내림";
icon = "fa fa-chevron-down";
break;
case("4"):
rtnName = "대기";
icon = "fa fa-play-circle-o";
break;
case("5"):
rtnName = "수화기듬";
icon = "fa fa-chevron-up";
break;
case("6"):
rtnName = "다이얼링중";
icon = "fa fa-th";
break;
case("7"):
rtnName = "벨울림중";
icon = "fa fa-bell-o";
break;
case("8"):
rtnName = "이석중";
icon = "fa fa-user-times";
break;
case("81"):
rtnName = "이석(휴식중)";
icon = "fa fa-coffee";
break;
case("82"):
rtnName = "이석(식사중)";
icon = "fa fa-cutlery";
break;
case("83"):
rtnName = "이석(교육중)";
icon = "fa fa-graduation-cap";
break;
case("84"):
rtnName = "이석(업무중)";
icon = "fa fa-keyboard-o";
break;
case("9"):
rtnName = "후처리중";
icon = "fa fa-pencil";
break;
case("13"):
rtnName = "통화대기";
icon = "fa fa-pause-circle-o";
break;
case("19"):
rtnName = "컨설트통화중";
icon = "fa fa-users";
break;
case("20"):
rtnName = "내선통화중";
icon = "fa fa-volume-control-phone";
break;
case("21"):
rtnName = "아웃바운드 통화중";
icon = "fa fa-volume-control-phone";
break;
case("22"):
rtnName = "인바운드 통화중";
icon = "fa fa-volume-control-phone";
break;
case("23"):
rtnName = "로그아웃";
icon = "fa fa-times-circle";
break;
case("24"):
rtnName = "다이얼완료";
icon = "";
break;
case("25"):
rtnName = "다이얼링중포기";
icon = "fa fa-times";
break;
case("26"):
rtnName = "통화중";
icon = "fa fa-volume-control-phone";
break;
case("27"):
rtnName = "벨울림중 포기";
icon = "fa fa-times";
break;
case("28"):
rtnName = "보류중";
icon = "fa fa-volume-off";
break;
case("29"):
rtnName = "보류해제";
icon = "fa fa-volume-up";
break;
case("30"):
rtnName = "보류중 포기";
icon = "fa fa-times";
break;
case("31"):
rtnName = "호전환 전송";
icon = "";
break;
case("32"):
rtnName = "착신전환";
icon = "";
break;
case("33"):
rtnName = "호전환 완료";
icon = "";
break;
case("34"):
rtnName = "컨퍼런스 전송";
icon = "";
break;
case("35"):
rtnName = "컨퍼런스 연결";
icon = "";
break;
case("36"):
rtnName = "다자통화중 통화자 추가";
icon = "";
break;
case("37"):
rtnName = "다자통화중 통화자 삭제";
icon = "";
break;
case("38"):
rtnName = "유저이벤트";
icon = "";
break;
case("39"):
rtnName = "다이얼링중(상태모름)";
icon = "";
break;
case("40"):
rtnName = "다이얼링중(내선)";
icon = "fa fa-th";
break;
default :
break;
}
return rtnName;
}
</script>
<body>
<form name="frm">
<input type="hidden" id ="gubun" name="gubun" value="">
<input type="hidden" id ="fromdt" name="fromdt" value="">
<input type="hidden" id ="todt" name="todt" value="">
<input type="hidden" id ="groups" name="groups" value="1_2_182">
<input type="hidden" id ="agents" name="agents" value="">
<input type="hidden" id ="qrymode" name="qrymode" value="">
<div>
<table style="width: 100%">
<tr>
<td>
<div>
정비예약파트 실시간 현황
</div>
</td>
<td style="text-align: right; width: 30%;">
<div>
<span id="realTimer"></span>
</div>
</td>
</tr>
</table>
</div>
<!-- 메뉴 영역 시작-->
<div class="container-fluid page-body-wrapper">
<div class="navbar">
<div class="col-12 col-md-12" style="display: inline-block;">
[종합상담현황] 로그인 : 00명, 고객대기 : 0명, 상담사 대기 0명, 작업인원 : 0명, 상담중 : 0명, 휴식인원 : 0명
</div>
</div>
<table style="width: 100%;">
<tr>
<td align="left" style="height:40px; width:150px; vertical-align: center; background-color: RGB(242,222,222); border-top-left-radius: 3px; border-top-right-radius: 3px;">
&nbsp;&nbsp;&nbsp;대기고객 : <input type="text" id="WaitCall" size="3" class="input mini" style="text-align: center;" />
</td>
<td style="width:5px;">
</td>
<td align="left" style="height:40px; vertical-align: center; background-color: RGB(242,222,222); border-top-left-radius: 3px; border-top-right-radius: 3px;">
&nbsp;&nbsp;&nbsp;전체 : <input type="text" id="LoginAgent" size="3" class="input mini" style="text-align: center;" />
&nbsp;&nbsp;&nbsp;통화중 : <input type="text" id="TalkAgent" size="3" class="input mini" style="text-align: center;" />
&nbsp;&nbsp;&nbsp;대기중 : <input type="text" id="ReadyAgent" size="3" class="input mini" style="text-align: center;" />
&nbsp;&nbsp;&nbsp;후처리중 : <input type="text" id="AcwAgent" size="3" class="input mini" style="text-align: center;" />
&nbsp;&nbsp;&nbsp;이석중 : <input type="text" id="NotreadyAgent" size="3" class="input mini" style="text-align: center;" />
&nbsp;&nbsp;&nbsp;기타 : <input type="text" id="etcAgent" size="3" class="input mini" style="text-align: center;" />
</td>
</tr>
</table>
<br>
<ul class="nav nav-tabs" id="myTab" role="tablist">
<li class="nav-item">
<a class="nav-link active" id="detail-tab" data-toggle="tab" href="#detail" role="tab" aria-controls="detail" aria-selected="true" onclick="fnSelectScreen('Detail');">상세정보</a>
</li>
<li class="nav-item">
<a class="nav-link" id="simple-tab" data-toggle="tab" href="#simple" role="tab" aria-controls="simple" aria-selected="false" onclick="fnSelectScreen('Simple');">간략정보</a>
</li>
</ul>
<div class="tab-content" id="myTabContent">
<div class="tab-pane fade show active" id="detail" role="tabpanel" aria-labelledby="detail-tab" style="padding-top: 10px;">
<table id="table_detail" class="table-sm" data-height="400" data-virtual-scroll="true" data-sort-name="time" data-sort-order="asc" data-sortable="true" data-show-columns="false" style="text-align: center;">
<thead style="text-align: center;">
<tr>
<th data-field="dept">소속</th>
<th data-field="name" data-sortable="true">상담사</th>
<th data-field="emp" data-sortable="true">CTI ID</th>
<th data-field="ext" data-sortable="true">내선번호</th>
<th data-field="icon">아이콘</th>
<th data-field="stat" data-sortable="true">상담사 상태</th>
<th data-field="stat_org" data-visible="false">상담사 상태</th>
<th data-field="time" data-sortable="true">지속시간</th>
<th data-field="time_org" data-sortable="true" data-visible="false">지속시간(sec)</th>
<th data-field="ib" data-sortable="true">인바운드</th>
<th data-field="ob" data-sortable="true">아웃바운드</th>
<th data-field="telno">고객정보</th>
</tr>
</thead>
</table>
</div>
<div class="tab-pane fade" id="simple" role="tabpanel" aria-labelledby="simple-tab" style="padding-top: 10px;">
<table style="width: 98%">
<tr>
<td style="width: 33.3%; padding: 2px;">
<div class="card">
<div class="card-header">
<div class="row">
<div class="col" style="font-weight: bold;">&nbsp;<i class="fa fa-play-circle-o" aria-hidden="true"></i>&nbsp;대기중</div>
<div class="col" style="text-align: right;"><input type="text" size="3" id="cnt_ready" readonly="readonly" style="text-align: right;">&nbsp;<input type="text" size="3" id="ready_time" class="input_change" style="text-align: right; background-color: rgb(214, 216, 217);"></div>
</div>
</div>
<div class="card-body">
<table id="table_ready" class="table-sm" data-height="400" data-virtual-scroll="true" data-sort-name="time" data-sort-order="desc" data-show-columns="false" data-row-style="rowStyle" style="text-align: center;">
<thead style="text-align: center;">
<tr>
<th data-field="dept">소속</th>
<th data-field="name">상담사</th>
<th data-field="time">지속시간</th>
<th data-field="time_org" data-visible="false">지속시간(sec)</th>
<th data-field="stat_org" data-visible="false">상담사 상태</th>
<th data-field="gbn" data-visible="false">그리드구분</th>
</tr>
</thead>
</table>
</div>
</div>
</td>
<td style="width: 33.3%; padding: 2px;">
<div class="card">
<div class="card-header">
<div class="row">
<div class="col" style="font-weight: bold;">&nbsp;<i class="fa fa-volume-control-phone" aria-hidden="true"></i>&nbsp;통화중</div>
<div class="col" style="text-align: right;"><input type="text" size="3" id="cnt_talk" readonly="readonly" style="text-align: right;">&nbsp;<input type="text" size="3" id="talk_time" class="input_change" style="text-align: right; background-color: rgb(214, 216, 217);"></div>
</div>
</div>
<div class="card-body">
<table id="table_talk" class="table-sm" data-height="400" data-virtual-scroll="true" data-sort-name="time" data-sort-order="desc" data-show-columns="false" data-row-style="rowStyle" style="text-align: center;">
<thead style="text-align: center;">
<tr>
<th data-field="dept">소속</th>
<th data-field="name">상담사</th>
<th data-field="time">지속시간</th>
<th data-field="time_org" data-visible="false">지속시간(sec)</th>
<th data-field="telno">고객정보</th>
<th data-field="rec">감청</th>
<th data-field="stat_org" data-visible="false">상담사 상태코드</th>
<th data-field="gbn" data-visible="false">그리드구분</th>
</tr>
</thead>
</table>
</div>
</div>
</td>
<td style="width: 33.3%; padding: 2px;">
<div class="card">
<div class="card-header">
<div class="row">
<div class="col" style="font-weight: bold;">&nbsp;<i class="fa fa-pencil" aria-hidden="true"></i>&nbsp;후처리중</div>
<div class="col" style="text-align: right;"><input type="text" size="3" id="cnt_acw" readonly="readonly" style="text-align: right;">&nbsp;<input type="text" size="3" id="acw_time" class="input_change" style="text-align: right; background-color: rgb(214, 216, 217);"></div>
</div>
</div>
<div class="card-body">
<table id="table_acw" class="table-sm" data-height="400" data-virtual-scroll="true" data-sort-name="time" data-sort-order="desc" data-show-columns="false" data-row-style="rowStyle" style="text-align: center;">
<thead style="text-align: center;">
<tr>
<th data-field="dept">소속</th>
<th data-field="name">상담사</th>
<th data-field="time">지속시간</th>
<th data-field="time_org" data-visible="false">지속시간(sec)</th>
<th data-field="stat_org" data-visible="false">상담사 상태코드</th>
<th data-field="gbn" data-visible="false">그리드구분</th>
</tr>
</thead>
</table>
</div>
</div>
</td>
</tr>
<tr>
<td style="width: 33.3%; padding: 2px;">
<div class="card">
<div class="card-header">
<div class="row">
<div class="col" style="font-weight: bold;">&nbsp;<i class="fa fa-coffee" aria-hidden="true"></i>&nbsp;휴식</div>
<div class="col" style="text-align: right;"><input type="text" size="3" id="cnt_nr_1" readonly="readonly" style="text-align: right;">&nbsp;<input type="text" size="3" id="nr1_time" class="input_change" style="text-align: right; background-color: rgb(214, 216, 217);"></div>
</div>
</div>
<div class="card-body">
<table id="table_nr_1" class="table-sm" data-height="400" data-virtual-scroll="true" data-sort-name="time" data-sort-order="desc" data-show-columns="false" data-row-style="rowStyle" style="text-align: center; ">
<thead style="text-align: center;">
<tr>
<th data-field="dept">소속</th>
<th data-field="name">상담사</th>
<th data-field="time">지속시간</th>
<th data-field="time_org" data-visible="false">지속시간(sec)</th>
<th data-field="stat_org" data-visible="false">상담사 상태코드</th>
<th data-field="gbn" data-visible="false">그리드구분</th>
</tr>
</thead>
</table>
</div>
</div>
</td>
<td style="width: 33.3%; padding: 2px;">
<div class="card">
<div class="card-header">
<div class="row">
<div class="col" style="font-weight: bold;">&nbsp;<i class="fa fa-keyboard-o" aria-hidden="true"></i>&nbsp;교육/업무</div>
<div class="col" style="text-align: right;"><input type="text" size="3" id="cnt_nr_34" readonly="readonly" style="text-align: right;">&nbsp;<input type="text" size="3" id="nr34_time" class="input_change" style="text-align: right; background-color: rgb(214, 216, 217);"></div>
</div>
</div>
<div class="card-body">
<table id="table_nr_34" class="table-sm" data-height="400" data-virtual-scroll="true" data-sort-name="time" data-sort-order="desc" data-show-columns="false" data-row-style="rowStyle" style="text-align: center;">
<thead style="text-align: center;">
<tr>
<th data-field="dept">소속</th>
<th data-field="name">상담사</th>
<th data-field="time">지속시간</th>
<th data-field="time_org" data-visible="false">지속시간(sec)</th>
<th data-field="stat_org" data-visible="false">상담사 상태코드</th>
<th data-field="gbn" data-visible="false">그리드구분</th>
</tr>
</thead>
</table>
</div>
</div>
</td>
<td style="width: 33.3%; padding: 2px;">
<div class="card">
<div class="card-header">
<div class="row">
<div class="col" style="font-weight: bold;">&nbsp;<i class="fa fa-cutlery" aria-hidden="true"></i>&nbsp;식사중</div>
<div class="col" style="text-align: right;"><input type="text" size="3" id="cnt_nr_2" readonly="readonly" style="text-align: right;">&nbsp;<input type="text" size="3" id="nr2_time" class="input_change" style="text-align: right; background-color: rgb(214, 216, 217);"></div>
</div>
</div>
<div class="card-body">
<table id="table_nr_2" class="table-sm" data-height="400" data-virtual-scroll="true" data-sort-name="time" data-sort-order="desc" data-show-columns="false" data-row-style="rowStyle" style="text-align: center;">
<thead style="text-align: center;">
<tr>
<th data-field="dept">소속</th>
<th data-field="name">상담사</th>
<th data-field="time">지속시간</th>
<th data-field="time_org" data-visible="false">지속시간(sec)</th>
<th data-field="stat_org" data-visible="false">상담사 상태코드</th>
<th data-field="gbn" data-visible="false">그리드구분</th>
</tr>
</thead>
</table>
</div>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
</form>
</body>
<script>
//[조회] 버튼 누르기
$("#btnSearch").click(function(e) {
btnLogin_onclick();
});
function selGroupChanged(){
//getAgentList($("#selGroup option:selected").val());
}
function rowStyle(row, index) {
//console.log(index);
}
$(".input_change").change(function(){
localStorage.setItem('stat.' + this.id, $('#'+this.id).val());
});
$(function() {
var ready_time = localStorage.getItem('stat.ready_time');
var talk_time = localStorage.getItem('stat.talk_time');
var acw_time = localStorage.getItem('stat.acw_time');
var nr1_time = localStorage.getItem('stat.nr1_time');
var nr34_time = localStorage.getItem('stat.nr34_time');
var nr2_time = localStorage.getItem('stat.nr2_time');
var grid_height = window.innerHeight - 260;
var grid_height2 = (window.innerHeight - 320) /2;
var dt = [];
$('#table_detail').bootstrapTable({data: dt});
$('#table_ready').bootstrapTable({data: dt});
$('#table_talk').bootstrapTable({data: dt});
$('#table_acw').bootstrapTable({data: dt});
$('#table_nr_1').bootstrapTable({data: dt});
$('#table_nr_34').bootstrapTable({data: dt});
$('#table_nr_2').bootstrapTable({data: dt});
$('#table_detail').bootstrapTable('resetView' , {height: grid_height});
$('#table_ready').bootstrapTable('resetView' , {height: grid_height2});
$('#table_talk').bootstrapTable('resetView' , {height: grid_height2});
$('#table_acw').bootstrapTable('resetView' , {height: grid_height2});
$('#table_nr_1').bootstrapTable('resetView' , {height: grid_height2});
$('#table_nr_34').bootstrapTable('resetView' , {height: grid_height2});
$('#table_nr_2').bootstrapTable('resetView' , {height: grid_height2});
if(ready_time == null){
ready_time = "500";
}
$('#ready_time').val(ready_time);
if(talk_time == null){
talk_time = "600";
}
$('#talk_time').val(talk_time);
if(acw_time == null){
acw_time = "60";
}
$('#acw_time').val(acw_time);
if(nr1_time == null){
nr1_time = "1800";
}
$('#nr1_time').val(nr1_time);
if(nr34_time == null){
nr34_time = "3000";
}
$('#nr34_time').val(nr34_time);
if(nr2_time == null){
nr2_time = "1800";
}
$('#nr2_time').val(nr2_time);
});
function rowStyle(row, index) {
var tm = 0;
if(row.gbn == "ready"){
tm = parseInt($('#ready_time').val());
}else if(row.gbn == "talk"){
tm = parseInt($('#talk_time').val());
}else if(row.gbn == "acw"){
tm = parseInt($('#acw_time').val());
}else if(row.gbn == "nr1"){
tm = parseInt($('#nr1_time').val());
}else if(row.gbn == "nr34"){
tm = parseInt($('#nr34_time').val());
}else if(row.gbn == "nr2"){
tm = parseInt($('#nr2_time').val());
}
if(row.time_org >= tm){
return {
css: {
color: 'black',
background : '#F3E3F3'
}
}
}else{
return {
css: {
color: 'black'
}
}
}
}
function leadingZeros(n, digits) {
var zero = '';
n = n.toString();
if (n.length < digits) {
for (i = 0; i < digits - n.length; i++)
zero += '0';
}
return zero + n;
}
function timer(){
var d = new Date();
var date = leadingZeros(d.getFullYear(), 4) + '년 ' +
leadingZeros(d.getMonth() + 1, 2) + '월 ' +
leadingZeros(d.getDate(), 2) + '일 ';
var time = leadingZeros(d.getHours(), 2) + '시 ' +
leadingZeros(d.getMinutes(), 2) + '분 ';
var txt_time = date + "<br>" + time;
return txt_time;
}
function setData(){
}
function get_timer(){
setData();
// 함수값 불러와서, 태그 안에 집어넣기.
var timetxt = timer();
if( document.getElementById( "realTimer" ) ){ //페이지가 로드되지 않았을때 객체가 null일경우 에러발생됨
document.getElementById( "realTimer" ).innerHTML = timetxt;
}
// 1000 밀리초(=1초) 후에, 이 함수를 실행하기 (반복 실행 효과).
setTimeout( "get_timer()", 1000 );
}
$(window).ready(function(){
// (페이지가 로드되면) 함수를 불러오기.
//alert("wall1 load");
var callFunction = get_timer();
});
</script>
</html>

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,17 @@
{
"name": "Accent Neutralise",
"version": "1.0.0",
"description": "Plugin to neutralise the words.",
"url": "https://github.com/wenzhixin/bootstrap-table/tree/master/src/extensions/accent-neutralise",
"example": "#",
"plugins": [{
"name": "bootstrap-table-accent-neutralise",
"url": "https://github.com/wenzhixin/bootstrap-table/tree/master/src/extensions/accent-neutralise"
}],
"author": {
"name": "djhvscf",
"image": "https://avatars1.githubusercontent.com/u/4496763"
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 MiB

View File

@ -0,0 +1,33 @@
package kr.co.i4way.genesys.config;
import java.util.Collection;
import com.genesyslab.platform.applicationblocks.com.ConfigException;
import com.genesyslab.platform.applicationblocks.com.IConfService;
import com.genesyslab.platform.applicationblocks.com.objects.CfgFolder;
import com.genesyslab.platform.applicationblocks.com.queries.CfgFolderQuery;
import com.genesyslab.platform.configuration.protocol.types.CfgObjectType;
public class Folder {
public Folder(){
}
public Collection<CfgFolder> SelectCfgFolder(int folderDbid, String folderName, CfgObjectType objtype,
final IConfService service)
throws ConfigException, InterruptedException {
// Read configuration objects:
Collection<CfgFolder> folder = null;
CfgFolderQuery folderquery = new CfgFolderQuery();
if(folderDbid > 0){
folderquery.setDbid(folderDbid);
}
if(folderName != null){
folderquery.setName(folderName);
}
folderquery.setType(objtype.asInteger());
folder = service.retrieveMultipleObjects(CfgFolder.class,
folderquery);
return folder;
}
}

View File

@ -0,0 +1,44 @@
package kr.co.i4way.manage.dao;
import java.util.ArrayList;
import java.util.Map;
import kr.co.i4way.manage.model.CenterInfoVo;
import kr.co.i4way.manage.model.CommonInfoVo;
import kr.co.i4way.manage.model.ImageInfoVo;
import kr.co.i4way.manage.model.LoginVo;
import kr.co.i4way.manage.model.ObjInfoVo;
import kr.co.i4way.manage.model.UserInfoVo;
import kr.co.i4way.manage.model.WallInfoVo;
public interface ManageDao {
public String getDual() throws Exception;
public Map<String, Object> getLoginInfo(LoginVo avo) throws Exception;
public ArrayList getWallInfo_Manage(WallInfoVo wallinfovo) throws Exception;
public ArrayList getCenterInfo_Manage(CenterInfoVo centerinfovo) throws Exception;
public void insertCenterInfo(CenterInfoVo centerinfovo) throws Exception;
public void updateCenterInfo(CenterInfoVo centerinfovo) throws Exception;
public void deleteCenterInfo(CenterInfoVo centerinfovo) throws Exception;
public ArrayList getUserInfo_Manage(UserInfoVo userinfovo) throws Exception;
public void insertUserInfo(UserInfoVo userinfovo) throws Exception;
public void updateUserInfo(UserInfoVo userinfovo) throws Exception;
public void deleteUserInfo(UserInfoVo userinfovo) throws Exception;
public ArrayList getObjInfo_Manage(ObjInfoVo objinfovo) throws Exception;
public void insertObjInfo(ObjInfoVo objinfovo) throws Exception;
public void updateObjInfo(ObjInfoVo objinfovo) throws Exception;
public void deleteObjInfo(ObjInfoVo objinfovo) throws Exception;
public ArrayList getImageInfo_Manage(ImageInfoVo imageinfovo) throws Exception;
public void insertImageInfo(ImageInfoVo imageinfovo) throws Exception;
public void updateImageInfo(ImageInfoVo imageinfovo) throws Exception;
public void deleteImageInfo(ImageInfoVo imageinfovo) throws Exception;
public ArrayList getCommCode(CommonInfoVo commoninfovo) throws Exception;
public ArrayList getImages(ImageInfoVo imageinfovo) throws Exception;
public void saveWallInfo(WallInfoVo wallinfovo) throws Exception;
}

View File

@ -0,0 +1,54 @@
//! moment.js locale configuration
//! locale : English (Israel) [en-il]
//! author : Chris Gedrim : https://github.com/chrisgedrim
import moment from '../moment';
export default moment.defineLocale('en-il', {
months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY HH:mm',
LLLL : 'dddd, D MMMM YYYY HH:mm'
},
calendar : {
sameDay : '[Today at] LT',
nextDay : '[Tomorrow at] LT',
nextWeek : 'dddd [at] LT',
lastDay : '[Yesterday at] LT',
lastWeek : '[Last] dddd [at] LT',
sameElse : 'L'
},
relativeTime : {
future : 'in %s',
past : '%s ago',
s : 'a few seconds',
m : 'a minute',
mm : '%d minutes',
h : 'an hour',
hh : '%d hours',
d : 'a day',
dd : '%d days',
M : 'a month',
MM : '%d months',
y : 'a year',
yy : '%d years'
},
dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
ordinal : function (number) {
var b = number % 10,
output = (~~(number % 100 / 10) === 1) ? 'th' :
(b === 1) ? 'st' :
(b === 2) ? 'nd' :
(b === 3) ? 'rd' : 'th';
return number + output;
}
});

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,116 @@
//! moment.js locale configuration
//! locale : Punjabi (India) [pa-in]
//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit
import moment from '../moment';
var symbolMap = {
'1': '',
'2': '੨',
'3': '੩',
'4': '',
'5': '੫',
'6': '੬',
'7': '੭',
'8': '੮',
'9': '੯',
'0': ''
},
numberMap = {
'': '1',
'੨': '2',
'੩': '3',
'': '4',
'੫': '5',
'੬': '6',
'੭': '7',
'੮': '8',
'੯': '9',
'': '0'
};
export default moment.defineLocale('pa-in', {
// There are months name as per Nanakshahi Calender but they are not used as rigidly in modern Punjabi.
months : 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'),
monthsShort : 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'),
weekdays : 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split('_'),
weekdaysShort : 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),
weekdaysMin : 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),
longDateFormat : {
LT : 'A h:mm ਵਜੇ',
LTS : 'A h:mm:ss ਵਜੇ',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY, A h:mm ਵਜੇ',
LLLL : 'dddd, D MMMM YYYY, A h:mm ਵਜੇ'
},
calendar : {
sameDay : '[ਅਜ] LT',
nextDay : '[ਕਲ] LT',
nextWeek : '[ਅਗਲਾ] dddd, LT',
lastDay : '[ਕਲ] LT',
lastWeek : '[ਪਿਛਲੇ] dddd, LT',
sameElse : 'L'
},
relativeTime : {
future : '%s ਵਿੱਚ',
past : '%s ਪਿਛਲੇ',
s : 'ਕੁਝ ਸਕਿੰਟ',
ss : '%d ਸਕਿੰਟ',
m : 'ਇਕ ਮਿੰਟ',
mm : '%d ਮਿੰਟ',
h : 'ਇੱਕ ਘੰਟਾ',
hh : '%d ਘੰਟੇ',
d : 'ਇੱਕ ਦਿਨ',
dd : '%d ਦਿਨ',
M : 'ਇੱਕ ਮਹੀਨਾ',
MM : '%d ਮਹੀਨੇ',
y : 'ਇੱਕ ਸਾਲ',
yy : '%d ਸਾਲ'
},
preparse: function (string) {
return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {
return numberMap[match];
});
},
postformat: function (string) {
return string.replace(/\d/g, function (match) {
return symbolMap[match];
});
},
// Punjabi notation for meridiems are quite fuzzy in practice. While there exists
// a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.
meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,
meridiemHour : function (hour, meridiem) {
if (hour === 12) {
hour = 0;
}
if (meridiem === 'ਰਾਤ') {
return hour < 4 ? hour : hour + 12;
} else if (meridiem === 'ਸਵੇਰ') {
return hour;
} else if (meridiem === 'ਦੁਪਹਿਰ') {
return hour >= 10 ? hour : hour + 12;
} else if (meridiem === 'ਸ਼ਾਮ') {
return hour + 12;
}
},
meridiem : function (hour, minute, isLower) {
if (hour < 4) {
return 'ਰਾਤ';
} else if (hour < 10) {
return 'ਸਵੇਰ';
} else if (hour < 17) {
return 'ਦੁਪਹਿਰ';
} else if (hour < 20) {
return 'ਸ਼ਾਮ';
} else {
return 'ਰਾਤ';
}
},
week : {
dow : 0, // Sunday is the first day of the week.
doy : 6 // The week that contains Jan 1st is the first week of the year.
}
});

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,144 @@
//! moment.js locale configuration
//! locale : Ukrainian [uk]
//! author : zemlanin : https://github.com/zemlanin
//! Author : Menelion Elensúle : https://github.com/Oire
import moment from '../moment';
function plural(word, num) {
var forms = word.split('_');
return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);
}
function relativeTimeWithPlural(number, withoutSuffix, key) {
var format = {
'ss': withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',
'mm': withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',
'hh': withoutSuffix ? 'година_години_годин' : 'годину_години_годин',
'dd': 'день_дні_днів',
'MM': 'місяць_місяціісяців',
'yy': 'рік_роки_років'
};
if (key === 'm') {
return withoutSuffix ? 'хвилина' : 'хвилину';
}
else if (key === 'h') {
return withoutSuffix ? 'година' : 'годину';
}
else {
return number + ' ' + plural(format[key], +number);
}
}
function weekdaysCaseReplace(m, format) {
var weekdays = {
'nominative': 'неділя_понеділок_вівторок_середаетвер_пятниця_субота'.split('_'),
'accusative': 'неділю_понеділок_вівторок_середуетвер_пятницю_суботу'.split('_'),
'genitive': 'неділі_понеділкаівторка_середи_четверга_пятниці_суботи'.split('_')
};
if (!m) {
return weekdays['nominative'];
}
var nounCase = (/(\[[ВвУу]\]) ?dddd/).test(format) ?
'accusative' :
((/\[?(?:минулої|наступної)? ?\] ?dddd/).test(format) ?
'genitive' :
'nominative');
return weekdays[nounCase][m.day()];
}
function processHoursFunction(str) {
return function () {
return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';
};
}
export default moment.defineLocale('uk', {
months : {
'format': 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_'),
'standalone': 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_')
},
monthsShort : 'січ_лют_бер_квіт_трав_черв_лип_серп_веровт_лист_груд'.split('_'),
weekdays : weekdaysCaseReplace,
weekdaysShort : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD.MM.YYYY',
LL : 'D MMMM YYYY р.',
LLL : 'D MMMM YYYY р., HH:mm',
LLLL : 'dddd, D MMMM YYYY р., HH:mm'
},
calendar : {
sameDay: processHoursFunction('[Сьогодні '),
nextDay: processHoursFunction('[Завтра '),
lastDay: processHoursFunction('[Вчора '),
nextWeek: processHoursFunction('[У] dddd ['),
lastWeek: function () {
switch (this.day()) {
case 0:
case 3:
case 5:
case 6:
return processHoursFunction('[Минулої] dddd [').call(this);
case 1:
case 2:
case 4:
return processHoursFunction('[Минулого] dddd [').call(this);
}
},
sameElse: 'L'
},
relativeTime : {
future : 'за %s',
past : '%s тому',
s : 'декілька секунд',
ss : relativeTimeWithPlural,
m : relativeTimeWithPlural,
mm : relativeTimeWithPlural,
h : 'годину',
hh : relativeTimeWithPlural,
d : 'день',
dd : relativeTimeWithPlural,
M : 'місяць',
MM : relativeTimeWithPlural,
y : 'рік',
yy : relativeTimeWithPlural
},
// M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason
meridiemParse: /ночі|ранку|дня|вечора/,
isPM: function (input) {
return /^(дня|вечора)$/.test(input);
},
meridiem : function (hour, minute, isLower) {
if (hour < 4) {
return 'ночі';
} else if (hour < 12) {
return 'ранку';
} else if (hour < 17) {
return 'дня';
} else {
return 'вечора';
}
},
dayOfMonthOrdinalParse: /\d{1,2}-(й|го)/,
ordinal: function (number, period) {
switch (period) {
case 'M':
case 'd':
case 'DDD':
case 'w':
case 'W':
return number + '-й';
case 'D':
return number + '-го';
default:
return number;
}
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 7 // The week that contains Jan 1st is the first week of the year.
}
});

View File

@ -0,0 +1,24 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>
This is a custom SVG font generated by IcoMoon.
<iconset grid="14"></iconset>
</metadata>
<defs>
<font id="codropsicons" horiz-adv-x="448" >
<font-face units-per-em="448" ascent="384" descent="-64" />
<missing-glyph horiz-adv-x="448" />
<glyph unicode="&#xe001;" d="M 221.657,359.485 ,m0.00,0.00,c 0.00,0.00 -132.984-182.838 -132.205-286.236 0.515-68.522 61.089-123.688 135.314-123.218 74.202,0.479 133.943,56.421 133.428,124.943 C 357.414,178.368 221.657,359.485 221.657,359.485 z" />
<glyph unicode="&#xe004;" d="M 384.00,160.00l0.00-32.00 q0.00-13.25 -8.125-22.625t-21.125-9.375l-176.00,0.00 l 73.25-73.50q 9.50-9.00 9.50-22.50t-9.50-22.50l-18.75-19.00q-9.25-9.25 -22.50-9.25q-13.00,0.00 -22.75,9.25l-162.75,163.00q-9.25,9.25 -9.25,22.50q0.00,13.00 9.25,22.75l 162.75,162.50q 9.50,9.50 22.75,9.50q 13.00,0.00 22.50-9.50l 18.75-18.50q 9.50-9.50 9.50-22.75t-9.50-22.75l-73.25-73.25l 176.00,0.00 q 13.00,0.00 21.125-9.375 t 8.125-22.625z" horiz-adv-x="384" />
<glyph unicode="&#xe002;" d="M 407.273-23.273c0.00,0.00-325.818,0.00-366.545,0.00s-40.727,40.727-40.727,40.727l0.00,142.545 l 101.818,183.273l 244.364,0.00 l 101.818-183.273c0.00,0.00,0.00-101.818,0.00-142.545S 407.273-23.273, 407.273-23.273z M 325.818,302.545L 122.182,302.545
l-71.273-142.545L 142.545,160.00 c0.00,0.00, 40.727,0.00, 40.727-40.727l0.00-20.364 l 81.455,0.00 l0.00,20.364 c0.00,0.00,0.00,40.727, 40.727,40.727l 91.636,0.00 L 325.818,302.545z M 407.273,119.273l-96.911,0.00 C 307.532,113.917, 305.455,107.503, 305.455,98.909c0.00-40.727-40.727-40.727-40.727-40.727L 183.273,58.182 c0.00,0.00-40.727,0.00-40.727,40.727
c0.00,8.593-2.077,15.008-4.908,20.364L 40.727,119.273 l0.00-101.818 l 366.545,0.00 L 407.273,119.273 z M 132.364,221.091l 183.273,0.00 L 325.818,200.727L 122.182,200.727 L 132.364,221.091z M 152.727,261.818l 142.545,0.00 L 305.455,241.455L 142.545,241.455 L 152.727,261.818z" />
<glyph unicode="&#xe000;" d="M 368.00,144.00q0.00-13.50 -9.25-22.75l-162.75-162.75q-9.75-9.25 -22.75-9.25q-12.75,0.00 -22.50,9.25l-18.75,18.75q-9.50,9.50 -9.50,22.75t 9.50,22.75l 73.25,73.25l-176.00,0.00 q-13.00,0.00 -21.125,9.375t-8.125,22.625l0.00,32.00 q0.00,13.25 8.125,22.625t 21.125,9.375l 176.00,0.00 l-73.25,73.50q-9.50,9.00 -9.50,22.50t 9.50,22.50l 18.75,18.75q 9.50,9.50 22.50,9.50q 13.25,0.00 22.75-9.50l 162.75-162.75q 9.25-8.75 9.25-22.50z" horiz-adv-x="384" />
<glyph unicode="&#xe003;" d="M 224.00-64.00C 100.291-64.00,0.00,36.291,0.00,160.00S 100.291,384.00, 224.00,384.00s 224.00-100.291, 224.00-224.00S 347.709-64.00, 224.00-64.00z
M 224.00,343.273c-101.228,0.00-183.273-82.045-183.273-183.273s 82.045-183.273, 183.273-183.273s 183.273,82.045, 183.273,183.273S 325.228,343.273, 224.00,343.273z M 244.364,122.164C 244.364,111.005, 244.364,98.909, 244.364,98.909l-40.727,0.00 c0.00,0.00,0.00,29.466,0.00,40.727
s 9.123,20.364, 20.364,20.364l0.00,0.00c 22.481,0.00, 40.727,18.246, 40.727,40.727s-18.246,40.727-40.727,40.727S 183.273,223.209, 183.273,200.727c0.00-7.453, 2.138-14.356, 5.641-20.364L 145.437,180.364 C 143.727,186.90, 142.545,193.661, 142.545,200.727
c0.00,44.983, 36.471,81.455, 81.455,81.455s 81.455-36.471, 81.455-81.455C 305.455,162.831, 279.45,131.247, 244.364,122.164z M 244.364,37.818l-40.727,0.00 l0.00,40.727 l 40.727,0.00 L 244.364,37.818 z" />
<glyph unicode="&#x20;" horiz-adv-x="224" />
<glyph class="hidden" unicode="&#xf000;" d="M0,384L 448 -64L0 -64 z" horiz-adv-x="0" />
</font></defs></svg>

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

@ -0,0 +1,17 @@
{
"name": "DeferURL",
"version": "1.0.0",
"description": "Plugin to defer server side processing.",
"url": "https://github.com/wenzhixin/bootstrap-table/tree/master/src/extensions/defer-url",
"example": "http://issues.wenzhixin.net.cn/bootstrap-table/#extensions/defer-url.html",
"plugins": [{
"name": "bootstrap-table-defer-url",
"url": "https://github.com/wenzhixin/bootstrap-table/tree/master/src/extensions/defer-url"
}],
"author": {
"name": "rubensa",
"image": "https://avatars1.githubusercontent.com/u/1469340"
}
}

View File

@ -0,0 +1,721 @@
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('jquery')) :
typeof define === 'function' && define.amd ? define(['jquery'], factory) :
(global = global || self, factory(global.jQuery));
}(this, function ($) { 'use strict';
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
function createCommonjsModule(fn, module) {
return module = { exports: {} }, fn(module, module.exports), module.exports;
}
var O = 'object';
var check = function (it) {
return it && it.Math == Math && it;
};
// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
var global_1 =
// eslint-disable-next-line no-undef
check(typeof globalThis == O && globalThis) ||
check(typeof window == O && window) ||
check(typeof self == O && self) ||
check(typeof commonjsGlobal == O && commonjsGlobal) ||
// eslint-disable-next-line no-new-func
Function('return this')();
var fails = function (exec) {
try {
return !!exec();
} catch (error) {
return true;
}
};
// Thank's IE8 for his funny defineProperty
var descriptors = !fails(function () {
return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
});
var nativePropertyIsEnumerable = {}.propertyIsEnumerable;
var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
// Nashorn ~ JDK8 bug
var NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);
// `Object.prototype.propertyIsEnumerable` method implementation
// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable
var f = NASHORN_BUG ? function propertyIsEnumerable(V) {
var descriptor = getOwnPropertyDescriptor(this, V);
return !!descriptor && descriptor.enumerable;
} : nativePropertyIsEnumerable;
var objectPropertyIsEnumerable = {
f: f
};
var createPropertyDescriptor = function (bitmap, value) {
return {
enumerable: !(bitmap & 1),
configurable: !(bitmap & 2),
writable: !(bitmap & 4),
value: value
};
};
var toString = {}.toString;
var classofRaw = function (it) {
return toString.call(it).slice(8, -1);
};
var split = ''.split;
// fallback for non-array-like ES3 and non-enumerable old V8 strings
var indexedObject = fails(function () {
// throws an error in rhino, see https://github.com/mozilla/rhino/issues/346
// eslint-disable-next-line no-prototype-builtins
return !Object('z').propertyIsEnumerable(0);
}) ? function (it) {
return classofRaw(it) == 'String' ? split.call(it, '') : Object(it);
} : Object;
// `RequireObjectCoercible` abstract operation
// https://tc39.github.io/ecma262/#sec-requireobjectcoercible
var requireObjectCoercible = function (it) {
if (it == undefined) throw TypeError("Can't call method on " + it);
return it;
};
// toObject with fallback for non-array-like ES3 strings
var toIndexedObject = function (it) {
return indexedObject(requireObjectCoercible(it));
};
var isObject = function (it) {
return typeof it === 'object' ? it !== null : typeof it === 'function';
};
// `ToPrimitive` abstract operation
// https://tc39.github.io/ecma262/#sec-toprimitive
// instead of the ES6 spec version, we didn't implement @@toPrimitive case
// and the second argument - flag - preferred type is a string
var toPrimitive = function (input, PREFERRED_STRING) {
if (!isObject(input)) return input;
var fn, val;
if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;
if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
throw TypeError("Can't convert object to primitive value");
};
var hasOwnProperty = {}.hasOwnProperty;
var has = function (it, key) {
return hasOwnProperty.call(it, key);
};
var document = global_1.document;
// typeof document.createElement is 'object' in old IE
var EXISTS = isObject(document) && isObject(document.createElement);
var documentCreateElement = function (it) {
return EXISTS ? document.createElement(it) : {};
};
// Thank's IE8 for his funny defineProperty
var ie8DomDefine = !descriptors && !fails(function () {
return Object.defineProperty(documentCreateElement('div'), 'a', {
get: function () { return 7; }
}).a != 7;
});
var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
// `Object.getOwnPropertyDescriptor` method
// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor
var f$1 = descriptors ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {
O = toIndexedObject(O);
P = toPrimitive(P, true);
if (ie8DomDefine) try {
return nativeGetOwnPropertyDescriptor(O, P);
} catch (error) { /* empty */ }
if (has(O, P)) return createPropertyDescriptor(!objectPropertyIsEnumerable.f.call(O, P), O[P]);
};
var objectGetOwnPropertyDescriptor = {
f: f$1
};
var anObject = function (it) {
if (!isObject(it)) {
throw TypeError(String(it) + ' is not an object');
} return it;
};
var nativeDefineProperty = Object.defineProperty;
// `Object.defineProperty` method
// https://tc39.github.io/ecma262/#sec-object.defineproperty
var f$2 = descriptors ? nativeDefineProperty : function defineProperty(O, P, Attributes) {
anObject(O);
P = toPrimitive(P, true);
anObject(Attributes);
if (ie8DomDefine) try {
return nativeDefineProperty(O, P, Attributes);
} catch (error) { /* empty */ }
if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');
if ('value' in Attributes) O[P] = Attributes.value;
return O;
};
var objectDefineProperty = {
f: f$2
};
var hide = descriptors ? function (object, key, value) {
return objectDefineProperty.f(object, key, createPropertyDescriptor(1, value));
} : function (object, key, value) {
object[key] = value;
return object;
};
var setGlobal = function (key, value) {
try {
hide(global_1, key, value);
} catch (error) {
global_1[key] = value;
} return value;
};
var shared = createCommonjsModule(function (module) {
var SHARED = '__core-js_shared__';
var store = global_1[SHARED] || setGlobal(SHARED, {});
(module.exports = function (key, value) {
return store[key] || (store[key] = value !== undefined ? value : {});
})('versions', []).push({
version: '3.1.3',
mode: 'global',
copyright: '© 2019 Denis Pushkarev (zloirock.ru)'
});
});
var functionToString = shared('native-function-to-string', Function.toString);
var WeakMap = global_1.WeakMap;
var nativeWeakMap = typeof WeakMap === 'function' && /native code/.test(functionToString.call(WeakMap));
var id = 0;
var postfix = Math.random();
var uid = function (key) {
return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);
};
var keys = shared('keys');
var sharedKey = function (key) {
return keys[key] || (keys[key] = uid(key));
};
var hiddenKeys = {};
var WeakMap$1 = global_1.WeakMap;
var set, get, has$1;
var enforce = function (it) {
return has$1(it) ? get(it) : set(it, {});
};
var getterFor = function (TYPE) {
return function (it) {
var state;
if (!isObject(it) || (state = get(it)).type !== TYPE) {
throw TypeError('Incompatible receiver, ' + TYPE + ' required');
} return state;
};
};
if (nativeWeakMap) {
var store = new WeakMap$1();
var wmget = store.get;
var wmhas = store.has;
var wmset = store.set;
set = function (it, metadata) {
wmset.call(store, it, metadata);
return metadata;
};
get = function (it) {
return wmget.call(store, it) || {};
};
has$1 = function (it) {
return wmhas.call(store, it);
};
} else {
var STATE = sharedKey('state');
hiddenKeys[STATE] = true;
set = function (it, metadata) {
hide(it, STATE, metadata);
return metadata;
};
get = function (it) {
return has(it, STATE) ? it[STATE] : {};
};
has$1 = function (it) {
return has(it, STATE);
};
}
var internalState = {
set: set,
get: get,
has: has$1,
enforce: enforce,
getterFor: getterFor
};
var redefine = createCommonjsModule(function (module) {
var getInternalState = internalState.get;
var enforceInternalState = internalState.enforce;
var TEMPLATE = String(functionToString).split('toString');
shared('inspectSource', function (it) {
return functionToString.call(it);
});
(module.exports = function (O, key, value, options) {
var unsafe = options ? !!options.unsafe : false;
var simple = options ? !!options.enumerable : false;
var noTargetGet = options ? !!options.noTargetGet : false;
if (typeof value == 'function') {
if (typeof key == 'string' && !has(value, 'name')) hide(value, 'name', key);
enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');
}
if (O === global_1) {
if (simple) O[key] = value;
else setGlobal(key, value);
return;
} else if (!unsafe) {
delete O[key];
} else if (!noTargetGet && O[key]) {
simple = true;
}
if (simple) O[key] = value;
else hide(O, key, value);
// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
})(Function.prototype, 'toString', function toString() {
return typeof this == 'function' && getInternalState(this).source || functionToString.call(this);
});
});
var path = global_1;
var aFunction = function (variable) {
return typeof variable == 'function' ? variable : undefined;
};
var getBuiltIn = function (namespace, method) {
return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global_1[namespace])
: path[namespace] && path[namespace][method] || global_1[namespace] && global_1[namespace][method];
};
var ceil = Math.ceil;
var floor = Math.floor;
// `ToInteger` abstract operation
// https://tc39.github.io/ecma262/#sec-tointeger
var toInteger = function (argument) {
return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);
};
var min = Math.min;
// `ToLength` abstract operation
// https://tc39.github.io/ecma262/#sec-tolength
var toLength = function (argument) {
return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991
};
var max = Math.max;
var min$1 = Math.min;
// Helper for a popular repeating case of the spec:
// Let integer be ? ToInteger(index).
// If integer < 0, let result be max((length + integer), 0); else let result be min(length, length).
var toAbsoluteIndex = function (index, length) {
var integer = toInteger(index);
return integer < 0 ? max(integer + length, 0) : min$1(integer, length);
};
// `Array.prototype.{ indexOf, includes }` methods implementation
var createMethod = function (IS_INCLUDES) {
return function ($this, el, fromIndex) {
var O = toIndexedObject($this);
var length = toLength(O.length);
var index = toAbsoluteIndex(fromIndex, length);
var value;
// Array#includes uses SameValueZero equality algorithm
// eslint-disable-next-line no-self-compare
if (IS_INCLUDES && el != el) while (length > index) {
value = O[index++];
// eslint-disable-next-line no-self-compare
if (value != value) return true;
// Array#indexOf ignores holes, Array#includes - not
} else for (;length > index; index++) {
if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;
} return !IS_INCLUDES && -1;
};
};
var arrayIncludes = {
// `Array.prototype.includes` method
// https://tc39.github.io/ecma262/#sec-array.prototype.includes
includes: createMethod(true),
// `Array.prototype.indexOf` method
// https://tc39.github.io/ecma262/#sec-array.prototype.indexof
indexOf: createMethod(false)
};
var indexOf = arrayIncludes.indexOf;
var objectKeysInternal = function (object, names) {
var O = toIndexedObject(object);
var i = 0;
var result = [];
var key;
for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);
// Don't enum bug & hidden keys
while (names.length > i) if (has(O, key = names[i++])) {
~indexOf(result, key) || result.push(key);
}
return result;
};
// IE8- don't enum bug keys
var enumBugKeys = [
'constructor',
'hasOwnProperty',
'isPrototypeOf',
'propertyIsEnumerable',
'toLocaleString',
'toString',
'valueOf'
];
var hiddenKeys$1 = enumBugKeys.concat('length', 'prototype');
// `Object.getOwnPropertyNames` method
// https://tc39.github.io/ecma262/#sec-object.getownpropertynames
var f$3 = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
return objectKeysInternal(O, hiddenKeys$1);
};
var objectGetOwnPropertyNames = {
f: f$3
};
var f$4 = Object.getOwnPropertySymbols;
var objectGetOwnPropertySymbols = {
f: f$4
};
// all object keys, includes non-enumerable and symbols
var ownKeys = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {
var keys = objectGetOwnPropertyNames.f(anObject(it));
var getOwnPropertySymbols = objectGetOwnPropertySymbols.f;
return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;
};
var copyConstructorProperties = function (target, source) {
var keys = ownKeys(source);
var defineProperty = objectDefineProperty.f;
var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f;
for (var i = 0; i < keys.length; i++) {
var key = keys[i];
if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));
}
};
var replacement = /#|\.prototype\./;
var isForced = function (feature, detection) {
var value = data[normalize(feature)];
return value == POLYFILL ? true
: value == NATIVE ? false
: typeof detection == 'function' ? fails(detection)
: !!detection;
};
var normalize = isForced.normalize = function (string) {
return String(string).replace(replacement, '.').toLowerCase();
};
var data = isForced.data = {};
var NATIVE = isForced.NATIVE = 'N';
var POLYFILL = isForced.POLYFILL = 'P';
var isForced_1 = isForced;
var getOwnPropertyDescriptor$1 = objectGetOwnPropertyDescriptor.f;
/*
options.target - name of the target object
options.global - target is the global object
options.stat - export as static methods of target
options.proto - export as prototype methods of target
options.real - real prototype method for the `pure` version
options.forced - export even if the native feature is available
options.bind - bind methods to the target, required for the `pure` version
options.wrap - wrap constructors to preventing global pollution, required for the `pure` version
options.unsafe - use the simple assignment of property instead of delete + defineProperty
options.sham - add a flag to not completely full polyfills
options.enumerable - export as enumerable property
options.noTargetGet - prevent calling a getter on target
*/
var _export = function (options, source) {
var TARGET = options.target;
var GLOBAL = options.global;
var STATIC = options.stat;
var FORCED, target, key, targetProperty, sourceProperty, descriptor;
if (GLOBAL) {
target = global_1;
} else if (STATIC) {
target = global_1[TARGET] || setGlobal(TARGET, {});
} else {
target = (global_1[TARGET] || {}).prototype;
}
if (target) for (key in source) {
sourceProperty = source[key];
if (options.noTargetGet) {
descriptor = getOwnPropertyDescriptor$1(target, key);
targetProperty = descriptor && descriptor.value;
} else targetProperty = target[key];
FORCED = isForced_1(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);
// contained in target
if (!FORCED && targetProperty !== undefined) {
if (typeof sourceProperty === typeof targetProperty) continue;
copyConstructorProperties(sourceProperty, targetProperty);
}
// add a flag to not completely full polyfills
if (options.sham || (targetProperty && targetProperty.sham)) {
hide(sourceProperty, 'sham', true);
}
// extend global
redefine(target, key, sourceProperty, options);
}
};
// `IsArray` abstract operation
// https://tc39.github.io/ecma262/#sec-isarray
var isArray = Array.isArray || function isArray(arg) {
return classofRaw(arg) == 'Array';
};
// `ToObject` abstract operation
// https://tc39.github.io/ecma262/#sec-toobject
var toObject = function (argument) {
return Object(requireObjectCoercible(argument));
};
var createProperty = function (object, key, value) {
var propertyKey = toPrimitive(key);
if (propertyKey in object) objectDefineProperty.f(object, propertyKey, createPropertyDescriptor(0, value));
else object[propertyKey] = value;
};
var nativeSymbol = !!Object.getOwnPropertySymbols && !fails(function () {
// Chrome 38 Symbol has incorrect toString conversion
// eslint-disable-next-line no-undef
return !String(Symbol());
});
var Symbol$1 = global_1.Symbol;
var store$1 = shared('wks');
var wellKnownSymbol = function (name) {
return store$1[name] || (store$1[name] = nativeSymbol && Symbol$1[name]
|| (nativeSymbol ? Symbol$1 : uid)('Symbol.' + name));
};
var SPECIES = wellKnownSymbol('species');
// `ArraySpeciesCreate` abstract operation
// https://tc39.github.io/ecma262/#sec-arrayspeciescreate
var arraySpeciesCreate = function (originalArray, length) {
var C;
if (isArray(originalArray)) {
C = originalArray.constructor;
// cross-realm fallback
if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
else if (isObject(C)) {
C = C[SPECIES];
if (C === null) C = undefined;
}
} return new (C === undefined ? Array : C)(length === 0 ? 0 : length);
};
var SPECIES$1 = wellKnownSymbol('species');
var arrayMethodHasSpeciesSupport = function (METHOD_NAME) {
return !fails(function () {
var array = [];
var constructor = array.constructor = {};
constructor[SPECIES$1] = function () {
return { foo: 1 };
};
return array[METHOD_NAME](Boolean).foo !== 1;
});
};
var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');
var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;
var MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';
var IS_CONCAT_SPREADABLE_SUPPORT = !fails(function () {
var array = [];
array[IS_CONCAT_SPREADABLE] = false;
return array.concat()[0] !== array;
});
var SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');
var isConcatSpreadable = function (O) {
if (!isObject(O)) return false;
var spreadable = O[IS_CONCAT_SPREADABLE];
return spreadable !== undefined ? !!spreadable : isArray(O);
};
var FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;
// `Array.prototype.concat` method
// https://tc39.github.io/ecma262/#sec-array.prototype.concat
// with adding support of @@isConcatSpreadable and @@species
_export({ target: 'Array', proto: true, forced: FORCED }, {
concat: function concat(arg) { // eslint-disable-line no-unused-vars
var O = toObject(this);
var A = arraySpeciesCreate(O, 0);
var n = 0;
var i, k, length, len, E;
for (i = -1, length = arguments.length; i < length; i++) {
E = i === -1 ? O : arguments[i];
if (isConcatSpreadable(E)) {
len = toLength(E.length);
if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);
for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);
} else {
if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);
createProperty(A, n++, E);
}
}
A.length = n;
return A;
}
});
/**
* Bootstrap Table Portuguese Portugal Translation
* Author: Burnspirit<burnspirit@gmail.com>
*/
$.fn.bootstrapTable.locales['pt-PT'] = {
formatLoadingMessage: function formatLoadingMessage() {
return 'A carregar, por favor aguarde';
},
formatRecordsPerPage: function formatRecordsPerPage(pageNumber) {
return "".concat(pageNumber, " registos por p&aacute;gina");
},
formatShowingRows: function formatShowingRows(pageFrom, pageTo, totalRows, totalNotFiltered) {
if (totalNotFiltered !== undefined && totalNotFiltered > 0 && totalNotFiltered > totalRows) {
return "A mostrar ".concat(pageFrom, " at&eacute; ").concat(pageTo, " de ").concat(totalRows, " linhas (filtered from ").concat(totalNotFiltered, " total rows)");
}
return "A mostrar ".concat(pageFrom, " at&eacute; ").concat(pageTo, " de ").concat(totalRows, " linhas");
},
formatSRPaginationPreText: function formatSRPaginationPreText() {
return 'previous page';
},
formatSRPaginationPageText: function formatSRPaginationPageText(page) {
return "to page ".concat(page);
},
formatSRPaginationNextText: function formatSRPaginationNextText() {
return 'next page';
},
formatDetailPagination: function formatDetailPagination(totalRows) {
return "Showing ".concat(totalRows, " rows");
},
formatClearSearch: function formatClearSearch() {
return 'Clear Search';
},
formatSearch: function formatSearch() {
return 'Pesquisa';
},
formatNoMatches: function formatNoMatches() {
return 'Nenhum registo encontrado';
},
formatPaginationSwitch: function formatPaginationSwitch() {
return 'Esconder/Mostrar pagina&ccedil&atilde;o';
},
formatPaginationSwitchDown: function formatPaginationSwitchDown() {
return 'Show pagination';
},
formatPaginationSwitchUp: function formatPaginationSwitchUp() {
return 'Hide pagination';
},
formatRefresh: function formatRefresh() {
return 'Atualizar';
},
formatToggle: function formatToggle() {
return 'Alternar';
},
formatToggleOn: function formatToggleOn() {
return 'Show card view';
},
formatToggleOff: function formatToggleOff() {
return 'Hide card view';
},
formatColumns: function formatColumns() {
return 'Colunas';
},
formatColumnsToggleAll: function formatColumnsToggleAll() {
return 'Toggle all';
},
formatFullscreen: function formatFullscreen() {
return 'Fullscreen';
},
formatAllRows: function formatAllRows() {
return 'Tudo';
},
formatAutoRefresh: function formatAutoRefresh() {
return 'Auto Refresh';
},
formatExport: function formatExport() {
return 'Export data';
},
formatJumpTo: function formatJumpTo() {
return 'GO';
},
formatAdvancedSearch: function formatAdvancedSearch() {
return 'Advanced search';
},
formatAdvancedCloseButton: function formatAdvancedCloseButton() {
return 'Close';
}
};
$.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['pt-PT']);
}));

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

View File

@ -0,0 +1,23 @@
# Table Resizable
Use Plugin: [bootstrap-table-resizable](https://github.com/wenzhixin/bootstrap-table/tree/master/src/extensions/resizable) </br>
Dependence: [jquery-resizable-columns](https://github.com/dobtco/jquery-resizable-columns) v0.2.3
## Usage
```html
<script src="extensions/resizable/bootstrap-table-resizable.js"></script>
```
## Options
### resizable
* type: Boolean
* description: Set true to allow the resize in each column.
* default: `false`
## Known issues
### This plugin does not work when data-height is set.

View File

@ -0,0 +1,54 @@
.example {
position: relative;
padding: 45px 15px 15px;
margin: 0 -15px 15px;
background-color: #fafafa;
box-shadow: inset 0 3px 6px rgba(0,0,0,.05);
border-color: #e5e5e5 #eee #eee;
border-style: solid;
border-width: 1px 0;
}
.example:after {
content: "Example";
position: absolute;
top: 15px;
left: 15px;
font-size: 12px;
font-weight: bold;
color: #bbb;
text-transform: uppercase;
letter-spacing: 1px;
}
.example + .highlight {
margin: -15px -15px 15px;
border-radius: 0;
border-width: 0 0 1px;
}
@media (min-width: 768px) {
.example {
margin-left: 0;
margin-right: 0;
background-color: #fff;
border-width: 1px;
border-color: #ddd;
border-radius: 4px 4px 0 0;
box-shadow: none;
}
.example + .highlight {
margin-top: -16px;
margin-left: 0;
margin-right: 0;
border-width: 1px;
border-bottom-left-radius: 4px;
border-bottom-right-radius: 4px;
}
}
.example > .btn,
.example > .btn-group {
margin-top: 5px;
margin-bottom: 5px;
}

View File

@ -0,0 +1,78 @@
//! moment.js locale configuration
//! locale : Kazakh [kk]
//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan
import moment from '../moment';
var suffixes = {
0: '-ші',
1: '-ші',
2: '-ші',
3: '-ші',
4: '-ші',
5: '-ші',
6: '-шы',
7: '-ші',
8: '-ші',
9: '-шы',
10: '-шы',
20: '-шы',
30: '-шы',
40: '-шы',
50: '-ші',
60: '-шы',
70: '-ші',
80: '-ші',
90: '-шы',
100: '-ші'
};
export default moment.defineLocale('kk', {
months : 'қаңтар_ақпан_наурыз_сәуірамыраусым_шілдеамыз_қыркүйек_қазан_қарашаелтоқсан'.split('_'),
monthsShort : 'қаң_ақп_нау_сәуам_мауіл_там_қыраз_қарел'.split('_'),
weekdays : 'жексенбіүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split('_'),
weekdaysShort : 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'),
weekdaysMin : 'жк_дй_сй_ср_бй_жм_сн'.split('_'),
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD.MM.YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY HH:mm',
LLLL : 'dddd, D MMMM YYYY HH:mm'
},
calendar : {
sameDay : '[Бүгін сағат] LT',
nextDay : '[Ертең сағат] LT',
nextWeek : 'dddd [сағат] LT',
lastDay : '[Кеше сағат] LT',
lastWeek : '[Өткен аптаның] dddd [сағат] LT',
sameElse : 'L'
},
relativeTime : {
future : '%s ішінде',
past : '%s бұрын',
s : 'бірнеше секунд',
ss : '%d секунд',
m : 'бір минут',
mm : '%d минут',
h : 'бір сағат',
hh : '%d сағат',
d : 'бір күн',
dd : '%d күн',
M : 'бір ай',
MM : '%d ай',
y : 'бір жыл',
yy : '%d жыл'
},
dayOfMonthOrdinalParse: /\d{1,2}-(ші|шы)/,
ordinal : function (number) {
var a = number % 10,
b = number >= 100 ? 100 : null;
return number + (suffixes[number] || suffixes[a] || suffixes[b]);
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 7 // The week that contains Jan 1st is the first week of the year.
}
});

View File

@ -0,0 +1,132 @@
package kr.co.i4way.genesys.config;
import com.genesyslab.platform.applicationblocks.com.IConfService;
import com.genesyslab.platform.applicationblocks.com.ConfServiceFactory;
import com.genesyslab.platform.applicationblocks.com.ConfigException;
import com.genesyslab.platform.configuration.protocol.types.CfgAppType;
import com.genesyslab.platform.configuration.protocol.ConfServerProtocol;
import com.genesyslab.platform.commons.connection.Connection;
import com.genesyslab.platform.commons.connection.configuration.PropertyConfiguration;
import com.genesyslab.platform.commons.protocol.ChannelState;
import com.genesyslab.platform.commons.protocol.Endpoint;
import com.genesyslab.platform.commons.protocol.ProtocolException;
/**
* Sample methods for initialization of configuration service instance.
*
* See http://docs.genesys.com/Documentation/PSDK/latest/Developer/UsingtheCOMAB
*
*/
public class InitializationConfig {
/**
* Sample Configuration service initialization function example.
*
*
* @param cfgsrvEndpointName name for the server connection endpoint
* @param cfgsrvHost configuration server host name
* @param cfgsrvPort configuration server port
* @param username configuration server login username
* @param password configuration server login password
* @return initialized configuration service
* @throws ConfigException in case of exception while service or configuration protocol initialization
* @throws InterruptedException if process was interrupted
* @throws ProtocolException exception on protocol connection opening
*/
public IConfService initializeConfigService(
final String cfgsrvEndpointName,
final String cfgsrvHost,
final int cfgsrvPort,
final String username,
final String password,
final String charset)
throws ConfigException, InterruptedException, ProtocolException {
CfgAppType clientType = CfgAppType.CFGSCE;
String clientName = "default";
return initializeConfigService(cfgsrvEndpointName,
cfgsrvHost, cfgsrvPort,
clientType, clientName,
username, password, charset);
}
/**
* Sample Configuration service initialization function example.
*
* @param cfgsrvEndpointName name for the server connection endpoint
* @param cfgsrvHost configuration server host name
* @param cfgsrvPort configuration server port
* @param clientType configuration server client application name
* @param clientName configuration server client application type
* @param username configuration server login user name
* @param password configuration server login password
* @return initialized configuration service
* @throws ConfigException in case of exception while service or configuration protocol initialization
* @throws InterruptedException if process was interrupted
* @throws ProtocolException exception on protocol connection opening
*/
public IConfService initializeConfigService(
final String cfgsrvEndpointName,
final String cfgsrvHost,
final int cfgsrvPort,
final CfgAppType clientType,
final String clientName,
final String username,
final String password,
final String charset)
throws ConfigException, InterruptedException, ProtocolException {
PropertyConfiguration config = new PropertyConfiguration();
config.setUseAddp(true);
config.setAddpClientTimeout(10);
config.setAddpServerTimeout(10);
config.setOption(Connection.STR_ATTR_ENCODING_NAME_KEY, charset);
Endpoint cfgServerEndpoint =
new Endpoint(cfgsrvEndpointName, cfgsrvHost, cfgsrvPort, config);
ConfServerProtocol protocol = new ConfServerProtocol(cfgServerEndpoint);
protocol.setClientName(clientName);
protocol.setClientApplicationType(clientType.ordinal());
protocol.setUserName(username);
protocol.setUserPassword(password);
IConfService service = ConfServiceFactory.createConfService(protocol);
protocol.open();
Integer cfgServerEncoding = protocol.getServerContext().getServerEncoding();
if (cfgServerEncoding != null && cfgServerEncoding.intValue() == 1) {
//System.out.println("UTF-8로 변경");
protocol.close();
config.setStringsEncoding("UTF-8");
protocol.setEndpoint(new Endpoint(cfgsrvEndpointName, cfgsrvHost, cfgsrvPort, config));
protocol.open();
} else{
//System.out.println("변경안함");
}
return service;
}
/**
* Release ConfService instance created with
* {@link #initializeConfigService(String, String, int, CfgAppType, String, String, String)}.
*
* @param service configuration service reference
* @throws InterruptedException
* @throws IllegalStateException
* @throws ProtocolException
*/
public void uninitializeConfigService(
final IConfService service) throws ProtocolException, IllegalStateException, InterruptedException {
if (service.getProtocol().getState() != ChannelState.Closed) {
service.getProtocol().close();
}
ConfServiceFactory.releaseConfService(service);
}
}

View File

@ -0,0 +1,10 @@
/**
* bootstrap-table - An extended table to integration with some of the most widely used CSS frameworks. (Supports Bootstrap, Semantic UI, Bulma, Material Design, Foundation)
*
* @version v1.15.5
* @homepage https://bootstrap-table.com
* @author wenzhixin <wenzhixin2010@gmail.com> (http://wenzhixin.net.cn/)
* @license MIT
*/
.bootstrap-table.bootstrap3 .fixed-table-pagination>.pagination ul.pagination,.bootstrap-table.bootstrap3 .fixed-table-pagination>.pagination .page-jump-to{display:inline}.bootstrap-table .fixed-table-pagination>.pagination .page-jump-to input{width:70px;margin-left:5px;text-align:center;float:left}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,17 @@
{
"name": "Group By",
"version": "1.1.0",
"description": "Plugin to group the data by fields.",
"url": "https://github.com/wenzhixin/bootstrap-table/tree/master/src/extensions/group-by",
"example": "#",
"plugins": [{
"name": "bootstrap-table-group-by",
"url": "https://github.com/wenzhixin/bootstrap-table/tree/master/src/extensions/group-by"
}],
"author": {
"name": "djhvscf",
"image": "https://avatars1.githubusercontent.com/u/4496763"
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,3 @@
/**
*
*/

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,523 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
String cntx = request.getContextPath();
%>
<!doctype html>
<html lang="ko">
<head>
<%@ include file="/WEB-INF/include/include-header.jspf" %>
<!-- Custom Theme Style -->
<link href="<c:url value='/css/custom.css' />" rel="stylesheet">
<!-- KNOB JS -->
<script src="<c:url value='/js/custom.min.js' />"></script>
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Wallboard Call</title>
<style type="text/css">
body, table, div, p, label {font-family: 'Nanum Gothic', sans-serif;}
</style>
</head>
<script>
var array_AgentStr = [];
var array_Str = [];
var statStrArray = [];
var array_EvtStr;
var W1_1 = "", W1_2 = "", W1_3 = ""; //W1 : 대기콜(인터폰,대표전체,영업전체)
var W2_1 = "", W2_2 = "", W2_3 = "", W2_4 = "", W2_5 = ""; //W2 : 상담사 상태(로그인,대기,인바운드,아웃바운드,후처리)
var W3_1 = "", W3_2 = "", W3_3 = "", W3_4 = ""; //W3 : 이석 상세(휴식,업무,교육,식사)
var W4_1 = "", W4_2 = "", W4_3 = ""; //W4 : 입인콜수(인터폰,대표전체,영업전체)
var W5_1 = "", W5_2 = "", W5_3 = ""; //W5 : 응대콜수(인터폰,대표전체,영업전체)
var W6_1 = "", W6_2 = "", W6_3 = ""; //W6 : 20초내응대콜수(인터폰,대표전체,영업전체)
var W7_1 = "", W7_2 = "", W7_3 = ""; //W7 : 포기콜수(인터폰,대표전체,영업전체)
var W8_1 = "", W8_2 = "", W8_3 = ""; //W8 : 시스템포기콜수(인터폰,대표전체,영업전체)
var dp_wait_call = 0;
var in_wait_call = 0;
var tot_wait_call = 0;
var dp_enter = 0;
var in_enter = 0;
var tot_enter = 0;
var dp_answer = 0;
var in_answer = 0;
var tot_answer = 0;
var dp_answer_20 = 0;
var in_answer_20 = 0;
var tot_answer_20 = 0;
var dp_ans_rto = 0;
var in_ans_rto = 0;
var tot_ans_rto = 0;
var dp_svc_lvl = 0;
var in_svc_lvl = 0;
var tot_svc_lvl = 0;
//ws.onmessage에서 받은 CTI 이벤트를 파싱하고 처리한다.
function EventHandler(evtStr){
var array_Stat;
if(evtStr != null){
array_Stat = null;
//샘플 : PARK.WALL=W1@0*0*0^W2@5*3*0*0*0^W3@1*0*0*1^W4@444*154*2^W5@418*132*2^W6@376*94*2^W7@24*20*0^W8@2*2*0
array_Stat = splitString(evtStr, "=");
if(array_Stat != null){
if(array_Stat[0] == "PARK.WALL"){ //전광판 데이터
WALL_Process(array_Stat[1]);
}
}
}
}
//Wall데이터 파싱
function WALL_Process(args){
var tmpArr = splitString(args, "^");
var tmpArr2;
if(tmpArr != null){
for(var i=0; i<tmpArr.length; i++){
array_Str = splitString(tmpArr[i], "@");
if(array_Str[0] == "W1"){
tmpArr2 = splitString(array_Str[1], "*");
W1_1 = tmpArr2[0];
W1_2 = tmpArr2[1];
W1_3 = tmpArr2[2];
}else if(array_Str[0] == "W2"){
tmpArr2 = splitString(array_Str[1], "*");
W2_1 = tmpArr2[0];
W2_2 = tmpArr2[1];
W2_3 = tmpArr2[2];
W2_4 = tmpArr2[3];
W2_5 = tmpArr2[4];
}else if(array_Str[0] == "W3"){
tmpArr2 = splitString(array_Str[1], "*");
W3_1 = tmpArr2[0];
W3_2 = tmpArr2[1];
W3_3 = tmpArr2[2];
W3_4 = tmpArr2[3];
}else if(array_Str[0] == "W4"){
tmpArr2 = splitString(array_Str[1], "*");
W4_1 = tmpArr2[0];
W4_2 = tmpArr2[1];
W4_3 = tmpArr2[2];
}else if(array_Str[0] == "W5"){
tmpArr2 = splitString(array_Str[1], "*");
W5_1 = tmpArr2[0];
W5_2 = tmpArr2[1];
W5_3 = tmpArr2[2];
}else if(array_Str[0] == "W6"){
tmpArr2 = splitString(array_Str[1], "*");
W6_1 = tmpArr2[0];
W6_2 = tmpArr2[1];
W6_3 = tmpArr2[2];
}else if(array_Str[0] == "W7"){
tmpArr2 = splitString(array_Str[1], "*");
W7_1 = tmpArr2[0];
W7_2 = tmpArr2[1];
W7_3 = tmpArr2[2];
}else if(array_Str[0] == "W8"){
tmpArr2 = splitString(array_Str[1], "*");
W8_1 = tmpArr2[0];
W8_2 = tmpArr2[1];
W8_3 = tmpArr2[2];
}
}
}
calcDatas();
$("#ReadyCall_Intp").html(in_wait_call);
$("#ReadyCall_DP").html(dp_wait_call);
$("#ReadyCall_Total").html(tot_wait_call);
$("#login_agent").html(W2_1);
$("#ready_agent").html(W2_2);
$("#ib_agent").html(W2_3);
$("#ob_agent").html(W2_4);
$("#acw_agent").html(W2_5);
$("#reason_1").html(W3_1);
$("#reason_2").html(W3_2);
$("#reason_3").html(W3_3);
$("#reason_4").html(W3_4);
$("#enter_Intp").html(in_enter);
$("#answer_Intp").html(in_answer);
$('#ansRto_Intp').val(in_ans_rto).trigger('change');
$('#svcLvl_Intp').val(in_svc_lvl).trigger('change');
$("#enter_DP").html(dp_enter);
$("#answer_DP").html(dp_answer);
$('#ansRto_DP').val(dp_ans_rto).trigger('change');
$('#svcLvl_DP').val(dp_svc_lvl).trigger('change');
$("#enter_Total").html(tot_enter);
$("#answer_Total").html(tot_answer);
$('#ansRto_Total').val(tot_ans_rto).trigger('change');
$('#svcLvl_Total').val(tot_svc_lvl).trigger('change');
}
function calcDatas(){
dp_wait_call = parseInt(W1_2) + parseInt(W1_3);
in_wait_call = parseInt(W1_1);
tot_wait_call = parseInt(W1_1) + parseInt(W1_2) + parseInt(W1_3);
dp_enter = parseInt(W4_2) + parseInt(W4_3);
in_enter = parseInt(W4_1);
tot_enter = parseInt(W4_1) + parseInt(W4_2) + parseInt(W4_3);
dp_answer = parseInt(W5_2) + parseInt(W5_3);
in_answer = parseInt(W5_1);
tot_answer = parseInt(W5_1) + parseInt(W5_2) + parseInt(W5_3);
dp_answer_20 = parseInt(W6_2) + parseInt(W6_3);
in_answer_20 = parseInt(W6_1);
tot_answer_20 = parseInt(W6_1) + parseInt(W6_2) + parseInt(W6_3);
if(dp_enter > 0){
dp_ans_rto = dp_answer / dp_enter * 100 + 0.05;
dp_ans_rto = dp_ans_rto.round(1);
dp_svc_lvl = dp_answer_20 / dp_enter * 100 + 0.05;
dp_svc_lvl = dp_svc_lvl.round(1);
}
if(in_enter > 0){
in_ans_rto = in_answer / in_enter * 100 + 0.05;
in_ans_rto = in_ans_rto.round(1);
in_svc_lvl = in_answer_20 / in_enter * 100 + 0.05;
in_svc_lvl = in_svc_lvl.round(1);
}
if(tot_enter > 0){
tot_ans_rto = tot_answer / tot_enter * 100 + 0.05;
tot_ans_rto = tot_ans_rto.round(1);
tot_svc_lvl = tot_answer_20 / tot_enter * 100 + 0.05;
tot_svc_lvl = tot_svc_lvl.round(1);
}
}
Number.prototype.round = function(places) {
return +(Math.round(this + "e+" + places) + "e-" + places);
}
function splitString(arrayString, splitChar) {
if (arrayString == null || splitChar == null) {
return null;
}
return arrayString.split(splitChar);
}
</script>
<body class="nav-md" style="background-color:#ccffff; width: 99.5%;height: 98vh;">
<!-- page content -->
<div class="right_col" role="main" style="margin-top: 5px; margin-left: 5px;">
<div class="row top_tiles">
<div class="col-md-12 col-sm-12 col-xs-12" style="padding-top: 20px;">
<div class="x_panel">
<table style="width: 100%;">
<tr>
<td width="33%">
<img src="<%=cntx%>/images/AJ_Park.png" width="176" height="47" alt="logo"/>
</td>
<td width="34%" style="text-align: center;">
<div style="font-size: 50px; font-weight: bold; color: black;">상담사 상태</div>
</td>
<td width="33%" style="text-align: right;">
<div style="font-size: 40px; color: black;"><p id="realTimer"></p></div>
</td>
</tr>
</table>
</div>
</div>
<div class="col-md-7 col-sm-7 col-xs-12">
<div class="x_panel tile fixed_height_320 overflow_hidden" style="height: 43vh;">
<div class="x_title">
<p><font size="40px;">대기콜</font></p>
<div class="clearfix"></div>
</div>
<div class="x_content">
<table style="width:100%;">
<tr>
<th style="width:33%; padding: 5px;">
<h3 style="font-weight:bold;">인터폰</h3>
<div id="ReadyCall_Intp" class="alert alert-success" style="font-size: 160px; text-align: center; height: 25vh;">
99
</div>
</th>
<th style="width:33%; padding: 5px;">
<h3 style="font-weight:bold;">대표번호</h3>
<div id="ReadyCall_DP" class="alert alert-info" style="font-size: 160px; text-align: center; height: 25vh;">
99
</div>
</th>
<th style="width:33%; padding: 5px;">
<h3 style="font-weight:bold;">전체</h3>
<div id="ReadyCall_Total" class="alert alert-warning" style="font-size: 160px; text-align: center; height: 25vh;">
99
</div>
</th>
</tr>
</table>
</div>
</div>
</div>
<div class="col-md-5 col-sm-5 col-xs-5">
<div class="x_panel tile fixed_height_320 overflow_hidden" style="height: 43vh">
<div class="x_title">
<p><font size="40px;">상담사 상태</font></p>
<div class="clearfix"></div>
</div>
<div class="x_content">
<table class="" style="width:100%;border: 1px;border-color: black;">
<tr>
<td style="width:20%; text-align: center;">
<span class="count_top" style="font-size: 18px;font-weight:bold;"><i class="fa fa-user"></i> 로그인</span>
<div id="login_agent" class="count" style="text-align : center; font-size: 60px; font-weight:bold; padding-top: 10px;">5</div>
</td>
<td style="width:20%; text-align: center;">
<span class="count_top" style="font-size: 18px;font-weight:bold;"><i class="fa fa-user"></i> 대기</span>
<div id="ready_agent" class="count" style="text-align : center; font-size: 60px; font-weight:bold; padding-top: 10px;">3</div>
</td>
<td style="width:20%; text-align: center;">
<span class="count_top" style="font-size: 18px;font-weight:bold;"><i class="fa fa-user"></i> 인바운드</span>
<div id="ib_agent" class="count" style="text-align : center; font-size: 60px; font-weight:bold; padding-top: 10px;">1</div>
</td>
<td style="width:20%; text-align: center;">
<span class="count_top" style="font-size: 18px;font-weight:bold;"><i class="fa fa-user"></i> 아웃바운드</span>
<div id="ob_agent" class="count" style="text-align : center; font-size: 60px; font-weight:bold; padding-top: 10px;">1</div>
</td>
<td style="width:20%; text-align: center;">
<span class="count_top" style="font-size: 18px;font-weight:bold;"><i class="fa fa-user"></i> 후처리</span>
<div id="acw_agent" class="count" style="text-align : center; font-size: 60px; font-weight:bold; padding-top: 10px;">0</div>
</td>
</table>
<br>
<table class="" style="width:100%;border: 1px;border-color: black;">
<tr>
<td style="width:20%; text-align: center; padding-left: 10px;padding-right: 10px;">
<h3 style="font-weight:bold;">이석상세</h3>
</td>
<td style="width:20%; text-align: center; padding-left: 10px;padding-right: 10px;">
<div class="daily-weather">
<h2 class="day" style="font-size: 18px;">휴식</h2>
<h1 id="reason_1" class="tile_info" style="text-align: center;">28</h1>
</div>
</td>
<td style="width:20%; text-align: center; padding-left: 10px;padding-right: 10px;">
<div class="daily-weather">
<h2 class="day" style="font-size: 18px;">식사</h2>
<h1 id="reason_2" class="tile_info" style="text-align: center;">28</h1>
</div>
</td>
<td style="width:20%; text-align: center; padding-left: 10px;padding-right: 10px;">
<div class="daily-weather">
<h2 class="day" style="font-size: 18px;">교육</h2>
<h1 id="reason_3" class="tile_info" style="text-align: center;">28</h1>
</div>
</td>
<td style="width:20%; text-align: center; padding-left: 10px;padding-right: 10px;">
<div class="daily-weather">
<h2 class="day" style="font-size: 18px;">업무</h2>
<h1 id="reason_4" class="tile_info" style="text-align: center;">28</h1>
</div>
</td>
</table>
</div>
</div>
</div>
</div>
<div class="row top_tiles">
<div class="col-md-4 col-sm-4 col-xs-12">
<div class="x_panel tile fixed_height_320 overflow_hidden" style="height: 40vh">
<div class="x_title">
<p><font size="40px;">응대현황_인터폰</font></p>
<div class="clearfix"></div>
</div>
<div class="x_content">
<table class="" style="width:100%">
<tr>
<th style="width:40%;text-align: center;">
<span style="font-size: 23px;">콜현황</span>
</th>
<th style="width:30%;text-align: center;">
<span style="font-size: 23px;">응대율(%)</span>
</th>
<th style="width:30%;text-align: center;">
<span style="font-size: 23px;">서비스레벨(%)</span>
</th>
</tr>
<tr><td>&nbsp;</td><td></td><td></td></tr>
<tr>
<td style="text-align: center;">
<table class="tile_info">
<tr>
<td>
<span class="count_top" style="font-size: 18px;font-weight: bold;"><i class="fa fa-user"></i> 접수호</span>
<div id="enter_Intp" class="count" style="text-align : center; font-size: 50px; font-weight: bold;">1,024</div>
</td>
</tr>
<tr>
<td>
<span class="count_top" style="font-size: 18px;font-weight: bold;"><i class="fa fa-user"></i> 응대호</span>
<div id="answer_Intp" class="count" style="text-align : center; font-size: 50px; font-weight: bold;">1,024</div>
</td>
</tr>
</table>
</td>
<td style="text-align: center;">
<input id="ansRto_Intp" class="knob" data-width="160" data-height="160" data-min="0" data-displayPrevious=true data-fgColor="#3db81f" value="92">
</td>
<td style="text-align: center;">
<input id="svcLvl_Intp" class="knob" data-width="160" data-height="160" data-min="0" data-displayPrevious=true data-fgColor="ff570e" value="85">
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="col-md-4 col-sm-4 col-xs-12">
<div class="x_panel tile fixed_height_320 overflow_hidden" style="height: 40vh">
<div class="x_title">
<p><font size="40px;">응대현황_대표번호</font></p>
<div class="clearfix"></div>
</div>
<div class="x_content">
<table class="" style="width:100%">
<tr>
<th style="width:40%;text-align: center;">
<span style="font-size: 23px;">콜현황</span>
</th>
<th style="width:30%;text-align: center;">
<span style="font-size: 23px;">응대율(%)</span>
</th>
<th style="width:30%;text-align: center;">
<span style="font-size: 23px;">서비스레벨(%)</span>
</th>
</tr>
<tr><td>&nbsp;</td><td></td><td></td></tr>
<tr>
<td style="text-align: center;">
<table class="tile_info">
<tr>
<td>
<span class="count_top" style="font-size: 18px;font-weight: bold;"><i class="fa fa-user"></i> 접수호</span>
<div id="enter_DP" class="count" style="text-align : center; font-size: 50px; font-weight: bold;">1,024</div>
</td>
</tr>
<tr>
<td>
<span class="count_top" style="font-size: 18px;font-weight: bold;"><i class="fa fa-user"></i> 응대호</span>
<div id="answer_DP" class="count" style="text-align : center; font-size: 50px; font-weight: bold;">1,024</div>
</td>
</tr>
</table>
</td>
<td style="text-align: center;">
<input id="ansRto_DP" class="knob" data-width="160" data-height="160" data-min="0" data-displayPrevious=true data-fgColor="#3db81f" value="92">
</td>
<td style="text-align: center;">
<input id="svcLvl_DP" class="knob" data-width="160" data-height="160" data-min="0" data-displayPrevious=true data-fgColor="ff570e" value="85">
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="col-md-4 col-sm-4 col-xs-12">
<div class="x_panel tile fixed_height_320 overflow_hidden" style="height: 40vh">
<div class="x_title">
<p><font size="40px;">응대현황_전체</font></p>
<div class="clearfix"></div>
</div>
<div class="x_content">
<table class="" style="width:100%">
<tr>
<th style="width:40%;text-align: center;">
<span style="font-size: 23px;">콜현황</span>
</th>
<th style="width:30%;text-align: center;">
<span style="font-size: 23px;">응대율(%)</span>
</th>
<th style="width:30%;text-align: center;">
<span style="font-size: 23px;">서비스레벨(%)</span>
</th>
</tr>
<tr><td>&nbsp;</td><td></td><td></td></tr>
<tr>
<td style="text-align: center;">
<table class="tile_info">
<tr>
<td>
<span class="count_top" style="font-size: 18px;font-weight: bold;"><i class="fa fa-user"></i> 접수호</span>
<div id="enter_Total" class="count" style="text-align : center; font-size: 50px; font-weight: bold;">1,024</div>
</td>
</tr>
<tr>
<td>
<span class="count_top" style="font-size: 18px;font-weight: bold;"><i class="fa fa-user"></i> 응대호</span>
<div id="answer_Total" class="count" style="text-align : center; font-size: 50px; font-weight: bold;">1,024</div>
</td>
</tr>
</table>
</td>
<td style="text-align: center;">
<input id="ansRto_Total" class="knob" data-width="160" data-height="160" data-min="0" data-displayPrevious=true data-fgColor="#3db81f" value="92">
</td>
<td style="text-align: center;">
<input id="svcLvl_Total" class="knob" data-width="160" data-height="160" data-min="0" data-displayPrevious=true data-fgColor="ff570e" value="85">
</td>
</tr>
</table>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
var callFunction;
function leadingZeros(n, digits) {
var zero = '';
n = n.toString();
if (n.length < digits) {
for (i = 0; i < digits - n.length; i++)
zero += '0';
}
return zero + n;
}
function timer(){
var d = new Date();
var date = leadingZeros(d.getFullYear(), 4) + '-' +
leadingZeros(d.getMonth() + 1, 2) + '-' +
leadingZeros(d.getDate(), 2) + ' ';
var time = leadingZeros(d.getHours(), 2) + ':' +
leadingZeros(d.getMinutes(), 2);
var txt_time = date + " " + time;
return txt_time;
}
function setData(){
EventHandler(top.document.getElementById("callData").value);
}
function get_timer(){
setData();
// 함수값 불러와서, 태그 안에 집어넣기.
var timetxt = timer();
if( document.getElementById( "realTimer" ) ){ //페이지가 로드되지 않았을때 객체가 null일경우 에러발생됨
document.getElementById( "realTimer" ).innerHTML = timetxt;
}
// 1000 밀리초(=1초) 후에, 이 함수를 실행하기 (반복 실행 효과).
setTimeout( "get_timer()", 1000 );
}
$(window).ready(function(){
// (페이지가 로드되면) 함수를 불러오기.
//alert("wall1 load");
var callFunction = get_timer();
});
</script>
</body>
</html>

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,15 @@
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="<c:url value='/css/sample.css' />" rel="stylesheet">
<script src="<c:url value='/js/sample.js' />"></script>
<link href="<c:url value='/css/materialize.min.css' />" rel="stylesheet">
<script src="<c:url value='/js/materialize.min.js' />"></script>
<script src="<c:url value='/vendor/echart-5.0.1/js/echarts.min.js' />"></script>
<script src="<c:url value='/vendor/jquery/3.4.1/jquery-3.4.1.min.js' />"></script>
<script src="<c:url value='/vendor/ckeditor5/ckeditor.js' />"></script>

View File

@ -0,0 +1,28 @@
package kr.co.i4way.webocket.config;
/*
import org.springframework.context.annotation.Configuration;
import org.springframework.messaging.simp.config.MessageBrokerRegistry;
import org.springframework.web.socket.config.annotation.EnableWebSocketMessageBroker;
import org.springframework.web.socket.config.annotation.StompEndpointRegistry;
import org.springframework.web.socket.config.annotation.WebSocketMessageBrokerConfigurer;
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {
@Override
public void configureMessageBroker(MessageBrokerRegistry registry) {
registry.enableSimpleBroker("/topic", "/queue");
registry.setApplicationDestinationPrefixes("/app");
}
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
//registry.addEndpoint("/websocket").withSockJS();
registry.addEndpoint("/websocket").setAllowedOrigins("*").withSockJS();
}
}
*/
public class WebSocketConfig{
}

View File

@ -0,0 +1,721 @@
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('jquery')) :
typeof define === 'function' && define.amd ? define(['jquery'], factory) :
(global = global || self, factory(global.jQuery));
}(this, function ($) { 'use strict';
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
function createCommonjsModule(fn, module) {
return module = { exports: {} }, fn(module, module.exports), module.exports;
}
var O = 'object';
var check = function (it) {
return it && it.Math == Math && it;
};
// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
var global_1 =
// eslint-disable-next-line no-undef
check(typeof globalThis == O && globalThis) ||
check(typeof window == O && window) ||
check(typeof self == O && self) ||
check(typeof commonjsGlobal == O && commonjsGlobal) ||
// eslint-disable-next-line no-new-func
Function('return this')();
var fails = function (exec) {
try {
return !!exec();
} catch (error) {
return true;
}
};
// Thank's IE8 for his funny defineProperty
var descriptors = !fails(function () {
return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
});
var nativePropertyIsEnumerable = {}.propertyIsEnumerable;
var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
// Nashorn ~ JDK8 bug
var NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);
// `Object.prototype.propertyIsEnumerable` method implementation
// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable
var f = NASHORN_BUG ? function propertyIsEnumerable(V) {
var descriptor = getOwnPropertyDescriptor(this, V);
return !!descriptor && descriptor.enumerable;
} : nativePropertyIsEnumerable;
var objectPropertyIsEnumerable = {
f: f
};
var createPropertyDescriptor = function (bitmap, value) {
return {
enumerable: !(bitmap & 1),
configurable: !(bitmap & 2),
writable: !(bitmap & 4),
value: value
};
};
var toString = {}.toString;
var classofRaw = function (it) {
return toString.call(it).slice(8, -1);
};
var split = ''.split;
// fallback for non-array-like ES3 and non-enumerable old V8 strings
var indexedObject = fails(function () {
// throws an error in rhino, see https://github.com/mozilla/rhino/issues/346
// eslint-disable-next-line no-prototype-builtins
return !Object('z').propertyIsEnumerable(0);
}) ? function (it) {
return classofRaw(it) == 'String' ? split.call(it, '') : Object(it);
} : Object;
// `RequireObjectCoercible` abstract operation
// https://tc39.github.io/ecma262/#sec-requireobjectcoercible
var requireObjectCoercible = function (it) {
if (it == undefined) throw TypeError("Can't call method on " + it);
return it;
};
// toObject with fallback for non-array-like ES3 strings
var toIndexedObject = function (it) {
return indexedObject(requireObjectCoercible(it));
};
var isObject = function (it) {
return typeof it === 'object' ? it !== null : typeof it === 'function';
};
// `ToPrimitive` abstract operation
// https://tc39.github.io/ecma262/#sec-toprimitive
// instead of the ES6 spec version, we didn't implement @@toPrimitive case
// and the second argument - flag - preferred type is a string
var toPrimitive = function (input, PREFERRED_STRING) {
if (!isObject(input)) return input;
var fn, val;
if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;
if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
throw TypeError("Can't convert object to primitive value");
};
var hasOwnProperty = {}.hasOwnProperty;
var has = function (it, key) {
return hasOwnProperty.call(it, key);
};
var document = global_1.document;
// typeof document.createElement is 'object' in old IE
var EXISTS = isObject(document) && isObject(document.createElement);
var documentCreateElement = function (it) {
return EXISTS ? document.createElement(it) : {};
};
// Thank's IE8 for his funny defineProperty
var ie8DomDefine = !descriptors && !fails(function () {
return Object.defineProperty(documentCreateElement('div'), 'a', {
get: function () { return 7; }
}).a != 7;
});
var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
// `Object.getOwnPropertyDescriptor` method
// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor
var f$1 = descriptors ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {
O = toIndexedObject(O);
P = toPrimitive(P, true);
if (ie8DomDefine) try {
return nativeGetOwnPropertyDescriptor(O, P);
} catch (error) { /* empty */ }
if (has(O, P)) return createPropertyDescriptor(!objectPropertyIsEnumerable.f.call(O, P), O[P]);
};
var objectGetOwnPropertyDescriptor = {
f: f$1
};
var anObject = function (it) {
if (!isObject(it)) {
throw TypeError(String(it) + ' is not an object');
} return it;
};
var nativeDefineProperty = Object.defineProperty;
// `Object.defineProperty` method
// https://tc39.github.io/ecma262/#sec-object.defineproperty
var f$2 = descriptors ? nativeDefineProperty : function defineProperty(O, P, Attributes) {
anObject(O);
P = toPrimitive(P, true);
anObject(Attributes);
if (ie8DomDefine) try {
return nativeDefineProperty(O, P, Attributes);
} catch (error) { /* empty */ }
if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');
if ('value' in Attributes) O[P] = Attributes.value;
return O;
};
var objectDefineProperty = {
f: f$2
};
var hide = descriptors ? function (object, key, value) {
return objectDefineProperty.f(object, key, createPropertyDescriptor(1, value));
} : function (object, key, value) {
object[key] = value;
return object;
};
var setGlobal = function (key, value) {
try {
hide(global_1, key, value);
} catch (error) {
global_1[key] = value;
} return value;
};
var shared = createCommonjsModule(function (module) {
var SHARED = '__core-js_shared__';
var store = global_1[SHARED] || setGlobal(SHARED, {});
(module.exports = function (key, value) {
return store[key] || (store[key] = value !== undefined ? value : {});
})('versions', []).push({
version: '3.1.3',
mode: 'global',
copyright: '© 2019 Denis Pushkarev (zloirock.ru)'
});
});
var functionToString = shared('native-function-to-string', Function.toString);
var WeakMap = global_1.WeakMap;
var nativeWeakMap = typeof WeakMap === 'function' && /native code/.test(functionToString.call(WeakMap));
var id = 0;
var postfix = Math.random();
var uid = function (key) {
return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);
};
var keys = shared('keys');
var sharedKey = function (key) {
return keys[key] || (keys[key] = uid(key));
};
var hiddenKeys = {};
var WeakMap$1 = global_1.WeakMap;
var set, get, has$1;
var enforce = function (it) {
return has$1(it) ? get(it) : set(it, {});
};
var getterFor = function (TYPE) {
return function (it) {
var state;
if (!isObject(it) || (state = get(it)).type !== TYPE) {
throw TypeError('Incompatible receiver, ' + TYPE + ' required');
} return state;
};
};
if (nativeWeakMap) {
var store = new WeakMap$1();
var wmget = store.get;
var wmhas = store.has;
var wmset = store.set;
set = function (it, metadata) {
wmset.call(store, it, metadata);
return metadata;
};
get = function (it) {
return wmget.call(store, it) || {};
};
has$1 = function (it) {
return wmhas.call(store, it);
};
} else {
var STATE = sharedKey('state');
hiddenKeys[STATE] = true;
set = function (it, metadata) {
hide(it, STATE, metadata);
return metadata;
};
get = function (it) {
return has(it, STATE) ? it[STATE] : {};
};
has$1 = function (it) {
return has(it, STATE);
};
}
var internalState = {
set: set,
get: get,
has: has$1,
enforce: enforce,
getterFor: getterFor
};
var redefine = createCommonjsModule(function (module) {
var getInternalState = internalState.get;
var enforceInternalState = internalState.enforce;
var TEMPLATE = String(functionToString).split('toString');
shared('inspectSource', function (it) {
return functionToString.call(it);
});
(module.exports = function (O, key, value, options) {
var unsafe = options ? !!options.unsafe : false;
var simple = options ? !!options.enumerable : false;
var noTargetGet = options ? !!options.noTargetGet : false;
if (typeof value == 'function') {
if (typeof key == 'string' && !has(value, 'name')) hide(value, 'name', key);
enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');
}
if (O === global_1) {
if (simple) O[key] = value;
else setGlobal(key, value);
return;
} else if (!unsafe) {
delete O[key];
} else if (!noTargetGet && O[key]) {
simple = true;
}
if (simple) O[key] = value;
else hide(O, key, value);
// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
})(Function.prototype, 'toString', function toString() {
return typeof this == 'function' && getInternalState(this).source || functionToString.call(this);
});
});
var path = global_1;
var aFunction = function (variable) {
return typeof variable == 'function' ? variable : undefined;
};
var getBuiltIn = function (namespace, method) {
return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global_1[namespace])
: path[namespace] && path[namespace][method] || global_1[namespace] && global_1[namespace][method];
};
var ceil = Math.ceil;
var floor = Math.floor;
// `ToInteger` abstract operation
// https://tc39.github.io/ecma262/#sec-tointeger
var toInteger = function (argument) {
return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);
};
var min = Math.min;
// `ToLength` abstract operation
// https://tc39.github.io/ecma262/#sec-tolength
var toLength = function (argument) {
return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991
};
var max = Math.max;
var min$1 = Math.min;
// Helper for a popular repeating case of the spec:
// Let integer be ? ToInteger(index).
// If integer < 0, let result be max((length + integer), 0); else let result be min(length, length).
var toAbsoluteIndex = function (index, length) {
var integer = toInteger(index);
return integer < 0 ? max(integer + length, 0) : min$1(integer, length);
};
// `Array.prototype.{ indexOf, includes }` methods implementation
var createMethod = function (IS_INCLUDES) {
return function ($this, el, fromIndex) {
var O = toIndexedObject($this);
var length = toLength(O.length);
var index = toAbsoluteIndex(fromIndex, length);
var value;
// Array#includes uses SameValueZero equality algorithm
// eslint-disable-next-line no-self-compare
if (IS_INCLUDES && el != el) while (length > index) {
value = O[index++];
// eslint-disable-next-line no-self-compare
if (value != value) return true;
// Array#indexOf ignores holes, Array#includes - not
} else for (;length > index; index++) {
if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;
} return !IS_INCLUDES && -1;
};
};
var arrayIncludes = {
// `Array.prototype.includes` method
// https://tc39.github.io/ecma262/#sec-array.prototype.includes
includes: createMethod(true),
// `Array.prototype.indexOf` method
// https://tc39.github.io/ecma262/#sec-array.prototype.indexof
indexOf: createMethod(false)
};
var indexOf = arrayIncludes.indexOf;
var objectKeysInternal = function (object, names) {
var O = toIndexedObject(object);
var i = 0;
var result = [];
var key;
for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);
// Don't enum bug & hidden keys
while (names.length > i) if (has(O, key = names[i++])) {
~indexOf(result, key) || result.push(key);
}
return result;
};
// IE8- don't enum bug keys
var enumBugKeys = [
'constructor',
'hasOwnProperty',
'isPrototypeOf',
'propertyIsEnumerable',
'toLocaleString',
'toString',
'valueOf'
];
var hiddenKeys$1 = enumBugKeys.concat('length', 'prototype');
// `Object.getOwnPropertyNames` method
// https://tc39.github.io/ecma262/#sec-object.getownpropertynames
var f$3 = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
return objectKeysInternal(O, hiddenKeys$1);
};
var objectGetOwnPropertyNames = {
f: f$3
};
var f$4 = Object.getOwnPropertySymbols;
var objectGetOwnPropertySymbols = {
f: f$4
};
// all object keys, includes non-enumerable and symbols
var ownKeys = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {
var keys = objectGetOwnPropertyNames.f(anObject(it));
var getOwnPropertySymbols = objectGetOwnPropertySymbols.f;
return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;
};
var copyConstructorProperties = function (target, source) {
var keys = ownKeys(source);
var defineProperty = objectDefineProperty.f;
var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f;
for (var i = 0; i < keys.length; i++) {
var key = keys[i];
if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));
}
};
var replacement = /#|\.prototype\./;
var isForced = function (feature, detection) {
var value = data[normalize(feature)];
return value == POLYFILL ? true
: value == NATIVE ? false
: typeof detection == 'function' ? fails(detection)
: !!detection;
};
var normalize = isForced.normalize = function (string) {
return String(string).replace(replacement, '.').toLowerCase();
};
var data = isForced.data = {};
var NATIVE = isForced.NATIVE = 'N';
var POLYFILL = isForced.POLYFILL = 'P';
var isForced_1 = isForced;
var getOwnPropertyDescriptor$1 = objectGetOwnPropertyDescriptor.f;
/*
options.target - name of the target object
options.global - target is the global object
options.stat - export as static methods of target
options.proto - export as prototype methods of target
options.real - real prototype method for the `pure` version
options.forced - export even if the native feature is available
options.bind - bind methods to the target, required for the `pure` version
options.wrap - wrap constructors to preventing global pollution, required for the `pure` version
options.unsafe - use the simple assignment of property instead of delete + defineProperty
options.sham - add a flag to not completely full polyfills
options.enumerable - export as enumerable property
options.noTargetGet - prevent calling a getter on target
*/
var _export = function (options, source) {
var TARGET = options.target;
var GLOBAL = options.global;
var STATIC = options.stat;
var FORCED, target, key, targetProperty, sourceProperty, descriptor;
if (GLOBAL) {
target = global_1;
} else if (STATIC) {
target = global_1[TARGET] || setGlobal(TARGET, {});
} else {
target = (global_1[TARGET] || {}).prototype;
}
if (target) for (key in source) {
sourceProperty = source[key];
if (options.noTargetGet) {
descriptor = getOwnPropertyDescriptor$1(target, key);
targetProperty = descriptor && descriptor.value;
} else targetProperty = target[key];
FORCED = isForced_1(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);
// contained in target
if (!FORCED && targetProperty !== undefined) {
if (typeof sourceProperty === typeof targetProperty) continue;
copyConstructorProperties(sourceProperty, targetProperty);
}
// add a flag to not completely full polyfills
if (options.sham || (targetProperty && targetProperty.sham)) {
hide(sourceProperty, 'sham', true);
}
// extend global
redefine(target, key, sourceProperty, options);
}
};
// `IsArray` abstract operation
// https://tc39.github.io/ecma262/#sec-isarray
var isArray = Array.isArray || function isArray(arg) {
return classofRaw(arg) == 'Array';
};
// `ToObject` abstract operation
// https://tc39.github.io/ecma262/#sec-toobject
var toObject = function (argument) {
return Object(requireObjectCoercible(argument));
};
var createProperty = function (object, key, value) {
var propertyKey = toPrimitive(key);
if (propertyKey in object) objectDefineProperty.f(object, propertyKey, createPropertyDescriptor(0, value));
else object[propertyKey] = value;
};
var nativeSymbol = !!Object.getOwnPropertySymbols && !fails(function () {
// Chrome 38 Symbol has incorrect toString conversion
// eslint-disable-next-line no-undef
return !String(Symbol());
});
var Symbol$1 = global_1.Symbol;
var store$1 = shared('wks');
var wellKnownSymbol = function (name) {
return store$1[name] || (store$1[name] = nativeSymbol && Symbol$1[name]
|| (nativeSymbol ? Symbol$1 : uid)('Symbol.' + name));
};
var SPECIES = wellKnownSymbol('species');
// `ArraySpeciesCreate` abstract operation
// https://tc39.github.io/ecma262/#sec-arrayspeciescreate
var arraySpeciesCreate = function (originalArray, length) {
var C;
if (isArray(originalArray)) {
C = originalArray.constructor;
// cross-realm fallback
if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
else if (isObject(C)) {
C = C[SPECIES];
if (C === null) C = undefined;
}
} return new (C === undefined ? Array : C)(length === 0 ? 0 : length);
};
var SPECIES$1 = wellKnownSymbol('species');
var arrayMethodHasSpeciesSupport = function (METHOD_NAME) {
return !fails(function () {
var array = [];
var constructor = array.constructor = {};
constructor[SPECIES$1] = function () {
return { foo: 1 };
};
return array[METHOD_NAME](Boolean).foo !== 1;
});
};
var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');
var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;
var MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';
var IS_CONCAT_SPREADABLE_SUPPORT = !fails(function () {
var array = [];
array[IS_CONCAT_SPREADABLE] = false;
return array.concat()[0] !== array;
});
var SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');
var isConcatSpreadable = function (O) {
if (!isObject(O)) return false;
var spreadable = O[IS_CONCAT_SPREADABLE];
return spreadable !== undefined ? !!spreadable : isArray(O);
};
var FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;
// `Array.prototype.concat` method
// https://tc39.github.io/ecma262/#sec-array.prototype.concat
// with adding support of @@isConcatSpreadable and @@species
_export({ target: 'Array', proto: true, forced: FORCED }, {
concat: function concat(arg) { // eslint-disable-line no-unused-vars
var O = toObject(this);
var A = arraySpeciesCreate(O, 0);
var n = 0;
var i, k, length, len, E;
for (i = -1, length = arguments.length; i < length; i++) {
E = i === -1 ? O : arguments[i];
if (isConcatSpreadable(E)) {
len = toLength(E.length);
if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);
for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);
} else {
if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);
createProperty(A, n++, E);
}
}
A.length = n;
return A;
}
});
/**
* Bootstrap Table Ukrainian translation
* Author: Vitaliy Timchenko <vitaliy.timchenko@gmail.com>
*/
$.fn.bootstrapTable.locales['uk-UA'] = {
formatLoadingMessage: function formatLoadingMessage() {
return 'Завантаження, будь ласка, зачекайте';
},
formatRecordsPerPage: function formatRecordsPerPage(pageNumber) {
return "".concat(pageNumber, " \u0437\u0430\u043F\u0438\u0441\u0456\u0432 \u043D\u0430 \u0441\u0442\u043E\u0440\u0456\u043D\u043A\u0443");
},
formatShowingRows: function formatShowingRows(pageFrom, pageTo, totalRows, totalNotFiltered) {
if (totalNotFiltered !== undefined && totalNotFiltered > 0 && totalNotFiltered > totalRows) {
return "\u041F\u043E\u043A\u0430\u0437\u0430\u043D\u043E \u0437 ".concat(pageFrom, " \u043F\u043E ").concat(pageTo, ". \u0412\u0441\u044C\u043E\u0433\u043E: ").concat(totalRows, " (filtered from ").concat(totalNotFiltered, " total rows)");
}
return "\u041F\u043E\u043A\u0430\u0437\u0430\u043D\u043E \u0437 ".concat(pageFrom, " \u043F\u043E ").concat(pageTo, ". \u0412\u0441\u044C\u043E\u0433\u043E: ").concat(totalRows);
},
formatSRPaginationPreText: function formatSRPaginationPreText() {
return 'previous page';
},
formatSRPaginationPageText: function formatSRPaginationPageText(page) {
return "to page ".concat(page);
},
formatSRPaginationNextText: function formatSRPaginationNextText() {
return 'next page';
},
formatDetailPagination: function formatDetailPagination(totalRows) {
return "Showing ".concat(totalRows, " rows");
},
formatClearSearch: function formatClearSearch() {
return 'Очистити фільтри';
},
formatSearch: function formatSearch() {
return 'Пошук';
},
formatNoMatches: function formatNoMatches() {
return 'Не знайдено жодного запису';
},
formatPaginationSwitch: function formatPaginationSwitch() {
return 'Hide/Show pagination';
},
formatPaginationSwitchDown: function formatPaginationSwitchDown() {
return 'Show pagination';
},
formatPaginationSwitchUp: function formatPaginationSwitchUp() {
return 'Hide pagination';
},
formatRefresh: function formatRefresh() {
return 'Оновити';
},
formatToggle: function formatToggle() {
return 'Змінити';
},
formatToggleOn: function formatToggleOn() {
return 'Show card view';
},
formatToggleOff: function formatToggleOff() {
return 'Hide card view';
},
formatColumns: function formatColumns() {
return 'Стовпці';
},
formatColumnsToggleAll: function formatColumnsToggleAll() {
return 'Toggle all';
},
formatFullscreen: function formatFullscreen() {
return 'Fullscreen';
},
formatAllRows: function formatAllRows() {
return 'All';
},
formatAutoRefresh: function formatAutoRefresh() {
return 'Auto Refresh';
},
formatExport: function formatExport() {
return 'Export data';
},
formatJumpTo: function formatJumpTo() {
return 'GO';
},
formatAdvancedSearch: function formatAdvancedSearch() {
return 'Advanced search';
},
formatAdvancedCloseButton: function formatAdvancedCloseButton() {
return 'Close';
}
};
$.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['uk-UA']);
}));

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 MiB

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,17 @@
{
"name": "treegrid",
"version": "1.0.0",
"description": "Plugin to support the jquery treegrid.",
"url": "https://github.com/wenzhixin/bootstrap-table/tree/master/src/extensions/treegrid",
"example": "https://github.com/wenzhixin/bootstrap-table-examples/blob/master/extensions/treegrid.html",
"plugins": [{
"name": "bootstrap-table-treegrid",
"url": "https://github.com/wenzhixin/bootstrap-table/tree/master/src/extensions/treegrid"
}],
"author": {
"name": "foreveryang321",
"image": "https://avatars0.githubusercontent.com/u/5868190"
}
}

View File

@ -0,0 +1,111 @@
//! moment.js locale configuration
//! locale : Tibetan [bo]
//! author : Thupten N. Chakrishar : https://github.com/vajradog
import moment from '../moment';
var symbolMap = {
'1': '༡',
'2': '༢',
'3': '༣',
'4': '༤',
'5': '༥',
'6': '༦',
'7': '༧',
'8': '༨',
'9': '༩',
'0': '༠'
},
numberMap = {
'༡': '1',
'༢': '2',
'༣': '3',
'༤': '4',
'༥': '5',
'༦': '6',
'༧': '7',
'༨': '8',
'༩': '9',
'༠': '0'
};
export default moment.defineLocale('bo', {
months : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'),
monthsShort : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'),
weekdays : 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split('_'),
weekdaysShort : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'),
weekdaysMin : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'),
longDateFormat : {
LT : 'A h:mm',
LTS : 'A h:mm:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY, A h:mm',
LLLL : 'dddd, D MMMM YYYY, A h:mm'
},
calendar : {
sameDay : '[དི་རིང] LT',
nextDay : '[སང་ཉིན] LT',
nextWeek : '[བདུན་ཕྲག་རྗེས་མ], LT',
lastDay : '[ཁ་སང] LT',
lastWeek : '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',
sameElse : 'L'
},
relativeTime : {
future : '%s ལ་',
past : '%s སྔན་ལ',
s : 'ལམ་སང',
ss : '%d སྐར་ཆ།',
m : 'སྐར་མ་གཅིག',
mm : '%d སྐར་མ',
h : 'ཆུ་ཚོད་གཅིག',
hh : '%d ཆུ་ཚོད',
d : 'ཉིན་གཅིག',
dd : '%d ཉིན་',
M : 'ཟླ་བ་གཅིག',
MM : '%d ཟླ་བ',
y : 'ལོ་གཅིག',
yy : '%d ལོ'
},
preparse: function (string) {
return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {
return numberMap[match];
});
},
postformat: function (string) {
return string.replace(/\d/g, function (match) {
return symbolMap[match];
});
},
meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,
meridiemHour : function (hour, meridiem) {
if (hour === 12) {
hour = 0;
}
if ((meridiem === 'མཚན་མོ' && hour >= 4) ||
(meridiem === 'ཉིན་གུང' && hour < 5) ||
meridiem === 'དགོང་དག') {
return hour + 12;
} else {
return hour;
}
},
meridiem : function (hour, minute, isLower) {
if (hour < 4) {
return 'མཚན་མོ';
} else if (hour < 10) {
return 'ཞོགས་ཀས';
} else if (hour < 17) {
return 'ཉིན་གུང';
} else if (hour < 20) {
return 'དགོང་དག';
} else {
return 'མཚན་མོ';
}
},
week : {
dow : 0, // Sunday is the first day of the week.
doy : 6 // The week that contains Jan 1st is the first week of the year.
}
});

View File

@ -0,0 +1,196 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!doctype html>
<html lang="ko">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<%@ include file="/WEB-INF/include/include-header2.jspf" %>
<style>
@import url('https://fonts.googleapis.com/css2?family=Nanum+Gothic:wght@400;700&display=swap');
</style>
<style type="text/css">
body {
font-family:'Nanum Gothic', sans-serif;
height: 100vh;
/*background: url("/svg/sample.svg") no-repeat center/cover;*/
/*background: url("/images/601822.jpg") no-repeat center/cover;*/
/*background: url("/images/back_new.jpg") no-repeat center/cover;*/
background: url("/images/bg/23.jpg") no-repeat center/cover;
overflow: hidden;
}
.container {
margin: 0 auto;
max-width: 1920px;
width: 98%;
}
.card-panel {
-webkit-transition: -webkit-box-shadow .25s;
transition: -webkit-box-shadow .25s;
transition: box-shadow .25s;
transition: box-shadow .25s, -webkit-box-shadow .25s;
padding: 1.3vw 0.5vw 1.3vw 0.5vw;
margin: 0.3rem 0 0.3rem 0;
border-radius: 10px;
background-color: #fff;
opacity: 0.8;
}
table {
height: 75vh;
opacity: 0.8;
}
table thead tr th {
font-size: 3vw;
text-align: center;
color: white;
border-color: #bdbdbd;
border-style : solid;
border-width: 4px;
padding: 0.2vw 0.5vw 0.2vw 0.5vw;
background-color: #00acc1;
}
table tbody tr td {
font-size: 3vw; /* 6줄일때 3vw, 9줄일떼 2.2vw*/
font-weight : 600;
text-align: center;
border-color: #bdbdbd;
border-style : solid;
border-width: 4px;
padding: 0.2vw 0.5vw 0.2vw 0.5vw;
}
.td_style1{
background-color: #00acc1;
}
.td_style2{
background-color: #e6ee9c;
}
.td_style3{
background-color: white;
}
</style>
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Wallboard Test</title>
</head>
<body>
<div class="container">
<div class="row center-align">
<div class="col s12"><span style="font-size: 2.5vw; font-weight : 700;">Wells 고객센터</span></div>
<div class="col s3 left-align"></div>
<div class="col s6 center-align"><span style="font-size: 5vw; font-weight : 700; line-height: 1.2;">센터업무별현황</span></div>
<div class="col s3 right-align"><span id="clock" style="font-size: 2.9vw; font-weight : 500; line-height: 1.2;">0000-00-00(월)<br>00시 00분 00초</span></div>
</div>
<div class="row center-align">
<table>
<thead>
<tr>
<th>구분</th>
<th>접수호</th>
<th>응대호</th>
<th>응대율</th>
<th>대기호</th>
<th>대기상담사</th>
</tr>
</thead>
<tbody>
<tr>
<td class="td_style2">전&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;체</td>
<td class="td_style2">1,291</td>
<td class="td_style2">1,247</td>
<td class="td_style2">89.1</td>
<td class="td_style2">5</td>
<td class="td_style2">2</td>
</tr>
<tr>
<td class="td_style1" style="color: white;">AS 이사 재설치</td>
<td class="td_style3">1,291</td>
<td class="td_style3">1,247</td>
<td class="td_style3">89.1</td>
<td class="td_style3">5</td>
<td class="td_style3">2</td>
</tr>
<tr>
<td class="td_style1" style="color: white;">신규 렌탈</td>
<td class="td_style3">1,291</td>
<td class="td_style3">1,247</td>
<td class="td_style3">89.1</td>
<td class="td_style3">5</td>
<td class="td_style3">2</td>
</tr>
<tr>
<td class="td_style1" style="color: white;">결재정보 관련문의</td>
<td class="td_style3">1,291</td>
<td class="td_style3">1,247</td>
<td class="td_style3">89.1</td>
<td class="td_style3">5</td>
<td class="td_style3">2</td>
</tr>
<tr>
<td class="td_style1" style="color: white;">계약정보 관련문의</td>
<td class="td_style3">1,291</td>
<td class="td_style3">1,247</td>
<td class="td_style3">89.1</td>
<td class="td_style3">5</td>
<td class="td_style3">2</td>
</tr>
<tr>
<td class="td_style1" style="color: white;">취소문의</td>
<td class="td_style3">1,291</td>
<td class="td_style3">1,247</td>
<td class="td_style3">89.1</td>
<td class="td_style3">5</td>
<td class="td_style3">2</td>
</tr>
<!-- tr>
<td class="td_style1" style="color: white;">신규 렌탈</td>
<td class="td_style3">1,291</td>
<td class="td_style3">1,247</td>
<td class="td_style3">89.1</td>
<td class="td_style3">5</td>
<td class="td_style3">2</td>
</tr>
<tr>
<td class="td_style1" style="color: white;">결재정보 관련문의</td>
<td class="td_style3">1,291</td>
<td class="td_style3">1,247</td>
<td class="td_style3">89.1</td>
<td class="td_style3">5</td>
<td class="td_style3">2</td>
</tr>
<tr>
<td class="td_style1" style="color: white;">계약정보 관련문의</td>
<td class="td_style3">1,291</td>
<td class="td_style3">1,247</td>
<td class="td_style3">89.1</td>
<td class="td_style3">5</td>
<td class="td_style3">2</td>
</tr>
<tr>
<td class="td_style1" style="color: white;">취소문의</td>
<td class="td_style3">1,291</td>
<td class="td_style3">1,247</td>
<td class="td_style3">89.1</td>
<td class="td_style3">5</td>
<td class="td_style3">2</td>
</tr-->
</tbody>
</table>
</div>
</div>
</body>
<script>
function clock(){
var clock = parent.$('input#clock').val();
$('#clock').text(clock);
// 1000 밀리초(=1초) 후에, 이 함수를 실행하기 (반복 실행 효과).
setTimeout( "clock()", 1000 );
}
$( document ).ready(function() {
clock();
});
</script>
</html>

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,17 @@
{
"name": "Mobile",
"version": "1.1.0",
"description": "Plugin to support the responsive feature.",
"url": "https://github.com/wenzhixin/bootstrap-table/tree/master/src/extensions/mobile",
"example": "http://issues.wenzhixin.net.cn/bootstrap-table/#extensions/mobile.html",
"plugins": [{
"name": "bootstrap-table-mobile",
"url": "https://github.com/wenzhixin/bootstrap-table/tree/master/src/extensions/mobile"
}],
"author": {
"name": "djhvscf",
"image": "https://avatars1.githubusercontent.com/u/4496763"
}
}

View File

@ -0,0 +1,52 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>Hello WebSocket</title>
<%@ include file="/WEB-INF/include/include-header.jspf" %>
<script src="/webjars/sockjs-client/sockjs.min.js"></script>
<script src="/webjars/stomp-websocket/stomp.min.js"></script>
<script src="<c:url value='/js/app.js' />"></script>
</head>
<body>
<noscript><h2 style="color: #ff0000">Seems your browser doesn't support Javascript! Websocket relies on Javascript being enabled. Please enable Javascript and reload this page!</h2></noscript>
<div id="main-content" class="container">
<div class="row">
<div class="col-md-6">
<form class="form-inline">
<div class="form-group">
<label for="connect">WebSocket connection:</label>
<button id="connect" class="btn btn-default" type="submit">Connect</button>
<button id="disconnect" class="btn btn-default" type="submit" disabled="disabled">Disconnect
</button>
</div>
</form>
</div>
<div class="col-md-6">
<form class="form-inline">
<div class="form-group">
<label for="name">What is your name?</label>
<input type="text" id="name" class="form-control" placeholder="Your name here...">
</div>
<button id="send" class="btn btn-default" type="submit">Send</button>
</form>
</div>
</div>
<div class="row">
<div class="col-md-12">
<table id="conversation" class="table table-striped">
<thead>
<tr>
<th>Greetings</th>
</tr>
</thead>
<tbody id="greetings">
</tbody>
</table>
</div>
</div>
</div>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 248 KiB

View File

@ -0,0 +1,55 @@
//! moment.js locale configuration
//! locale : Maori [mi]
//! author : John Corrigan <robbiecloset@gmail.com> : https://github.com/johnideal
import moment from '../moment';
export default moment.defineLocale('mi', {
months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split('_'),
monthsShort: 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split('_'),
monthsRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
monthsStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
monthsShortRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
monthsShortStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,
weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'),
weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),
weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),
longDateFormat: {
LT: 'HH:mm',
LTS: 'HH:mm:ss',
L: 'DD/MM/YYYY',
LL: 'D MMMM YYYY',
LLL: 'D MMMM YYYY [i] HH:mm',
LLLL: 'dddd, D MMMM YYYY [i] HH:mm'
},
calendar: {
sameDay: '[i teie mahana, i] LT',
nextDay: '[apopo i] LT',
nextWeek: 'dddd [i] LT',
lastDay: '[inanahi i] LT',
lastWeek: 'dddd [whakamutunga i] LT',
sameElse: 'L'
},
relativeTime: {
future: 'i roto i %s',
past: '%s i mua',
s: 'te hēkona ruarua',
ss: '%d hēkona',
m: 'he meneti',
mm: '%d meneti',
h: 'te haora',
hh: '%d haora',
d: 'he ra',
dd: '%d ra',
M: 'he marama',
MM: '%d marama',
y: 'he tau',
yy: '%d tau'
},
dayOfMonthOrdinalParse: /\d{1,2}º/,
ordinal: '%dº',
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,81 @@
# bootstrap-table-addrbar
## 1. Why use this ?
Every time when changing page, sorting and searching operation, it will change the query params of the address bar. And while page loading, this plugin will use the query params in the address bar to make the request.
like this
![](https://gitimg.generals.space/611efd443ea59eccd61744c5ebd09452.png)
![](https://gitimg.generals.space/92515aa02c863a19daf76a8804990092.png)
### 1.1 Options
1. `addrbar`: start to use, true/false, default false;
2. `addrPrefix`: the prefix of the query params, default '', it should be used for multi tables.
## 2. Usage
1.
```html
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
<script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="https://cdn.bootcss.com/bootstrap-table/1.10.0/bootstrap-table.min.js"></script>
<script src="./bootstrap-table-addrbar.js"></script>
```
2.
```js
var tableOpts = {
...
addrbar: true,
}
$('#bt-table').bootstrapTable(tableOpts);
```
### 2.1 multi tables
While there are many tables in one page, and you want each of them can use this, then you may need the `addrPrefix` option.
There are 5 parameters in default. They are
- `page`: page number
- `limit`: page size
- `order`: asc/dsc
- `sort`: the sort keyword
- `search`: search keyword
If you want each table can use this plugin, this parameters will make the tables bothering each other. The `addrPrefix` filed will get the tables a unique prefix to avoid.
```js
var tableOpts1 = {
...
addrbar: true,
addrPrefix: 'tbl1'
};
var tableOpts2 = {
...
addrbar: true,
addrPrefix: 'tbl2'
};
$('#bt-table1').bootstrapTable(tableOpts1);
$('#bt-table2').bootstrapTable(tableOpts2);
```
![](https://gitimg.generals.space/5badfcee02a1998e279b432090a3d2b2.png)
## 3. note:
1. Can not use in client pagination;
2. The example page doesn't handle the sort and search operation, you need do it yourself;
While search field appeared, the page number will return to 1 when refresh, you can read [同时设置pageNumber和searchText初始值会冲突](https://github.com/wenzhixin/bootstrap-table/issues/2580);

View File

@ -0,0 +1,52 @@
//! moment.js locale configuration
//! locale : Faroese [fo]
//! author : Ragnar Johannesen : https://github.com/ragnar123
import moment from '../moment';
export default moment.defineLocale('fo', {
months : 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split('_'),
monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),
weekdays : 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split('_'),
weekdaysShort : 'sun_mán_týs_mik_hós_frí_ley'.split('_'),
weekdaysMin : 'su_má_tý_mi_hó_fr_le'.split('_'),
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY HH:mm',
LLLL : 'dddd D. MMMM, YYYY HH:mm'
},
calendar : {
sameDay : '[Í dag kl.] LT',
nextDay : '[Í morgin kl.] LT',
nextWeek : 'dddd [kl.] LT',
lastDay : '[Í gjár kl.] LT',
lastWeek : '[síðstu] dddd [kl] LT',
sameElse : 'L'
},
relativeTime : {
future : 'um %s',
past : '%s síðani',
s : 'fá sekund',
ss : '%d sekundir',
m : 'ein minutt',
mm : '%d minuttir',
h : 'ein tími',
hh : '%d tímar',
d : 'ein dagur',
dd : '%d dagar',
M : 'ein mánaði',
MM : '%d mánaðir',
y : 'eitt ár',
yy : '%d ár'
},
dayOfMonthOrdinalParse: /\d{1,2}\./,
ordinal : '%d.',
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More