IDEMPIERE-1635 Upgrade to zk7. Initial commit. WIP.
This commit is contained in:
parent
e3092231f1
commit
f41088eb9e
File diff suppressed because one or more lines are too long
|
@ -6,15 +6,15 @@
|
|||
_encs[_decs[v]] = v;
|
||||
|
||||
function _pathname(url) {
|
||||
var j = url.indexOf("//");
|
||||
var j = url.indexOf('//');
|
||||
if (j > 0) {
|
||||
j = url.indexOf("/", j + 2);
|
||||
j = url.indexOf('/', j + 2);
|
||||
if (j > 0) return url.substring(j);
|
||||
}
|
||||
}
|
||||
|
||||
function _frames(ary, w) {
|
||||
|
||||
//Note: the access of frames is allowed for any window (even if it connects other website)
|
||||
ary.push(w);
|
||||
for (var fs = w.frames, j = 0, l = fs.length; j < l; ++j)
|
||||
_frames(ary, fs[j]);
|
||||
|
@ -109,12 +109,12 @@ zUtl = {
|
|||
out.push(txt.substring(k, j), '&', enc, ';');
|
||||
k = j + 1;
|
||||
} else if (multiline && cc == '\n') {
|
||||
out.push(txt.substring(k, j), "<br/>\n");
|
||||
out.push(txt.substring(k, j), '<br/>\n');
|
||||
k = j + 1;
|
||||
} else if (pre && (cc == ' ' || cc == '\t')) {
|
||||
out.push(txt.substring(k, j), " ");
|
||||
out.push(txt.substring(k, j), ' ');
|
||||
if (cc == '\t')
|
||||
out.push(" ");
|
||||
out.push(' ');
|
||||
k = j + 1;
|
||||
}
|
||||
}
|
||||
|
@ -132,7 +132,7 @@ zUtl = {
|
|||
},
|
||||
|
||||
decodeXML: function (txt) {
|
||||
var out = "";
|
||||
var out = '';
|
||||
if (!txt) return out;
|
||||
|
||||
var k = 0, tl = txt.length;
|
||||
|
@ -170,7 +170,7 @@ zUtl = {
|
|||
|
||||
today: function (fmt) {
|
||||
var d = new Date(), hr = 0, min = 0, sec = 0, msec = 0;
|
||||
if (typeof fmt == "string") {
|
||||
if (typeof fmt == 'string') {
|
||||
var fmt0 = fmt.toLowerCase();
|
||||
if (fmt0.indexOf('h') >= 0 || fmt0.indexOf('k') >= 0) hr = d.getHours();
|
||||
if (fmt.indexOf('m') >= 0) min = d.getMinutes();
|
||||
|
@ -198,7 +198,7 @@ zUtl = {
|
|||
for (var c = zk.Page.contained.length, e = zk.Page.contained[--c]; e; e = zk.Page.contained[--c]) {
|
||||
if (!e._applyMask)
|
||||
e._applyMask = new zk.eff.Mask({
|
||||
id: e.uuid + "-mask",
|
||||
id: e.uuid + '-mask',
|
||||
message: msg,
|
||||
anchor: e.$n()
|
||||
});
|
||||
|
@ -230,11 +230,16 @@ zUtl = {
|
|||
$txt = jq(idtxt, zk),
|
||||
txt = $txt[0],
|
||||
st = txt.style;
|
||||
if (mask)
|
||||
if (mask) {
|
||||
// old IE will get the auto value by default.
|
||||
var zIndex = $txt.css('z-index');
|
||||
if (zIndex == 'auto')
|
||||
zIndex = 1;
|
||||
n.z_mask = new zk.eff.FullMask({
|
||||
mask: jq(idmsk, zk)[0],
|
||||
zIndex: $txt.css('z-index') - 1
|
||||
zIndex: zIndex - 1
|
||||
});
|
||||
}
|
||||
|
||||
if (mask && $txt.length) {
|
||||
st.left = jq.px((jq.innerWidth() - txt.offsetWidth) / 2 + x);
|
||||
|
@ -249,19 +254,19 @@ zUtl = {
|
|||
wdgap = width - zk(txt).offsetWidth(),
|
||||
hghgap = height - zk(txt).offsetHeight();
|
||||
|
||||
if (pos.indexOf("mouse") >= 0) {
|
||||
if (pos.indexOf('mouse') >= 0) {
|
||||
var offset = zk.currentPointer;
|
||||
left = offset[0] + 10;
|
||||
top = offset[1] + 10;
|
||||
} else {
|
||||
if (pos.indexOf("left") >= 0) left = x;
|
||||
else if (pos.indexOf("right") >= 0) left = x + wdgap -1;
|
||||
else if (pos.indexOf("center") >= 0) left = x + wdgap / 2;
|
||||
if (pos.indexOf('left') >= 0) left = x;
|
||||
else if (pos.indexOf('right') >= 0) left = x + wdgap -1;
|
||||
else if (pos.indexOf('center') >= 0) left = x + wdgap / 2;
|
||||
else left = 0;
|
||||
|
||||
if (pos.indexOf("top") >= 0) top = y;
|
||||
else if (pos.indexOf("bottom") >= 0) top = y + hghgap - 1;
|
||||
else if (pos.indexOf("center") >= 0) top = y + hghgap / 2;
|
||||
if (pos.indexOf('top') >= 0) top = y;
|
||||
else if (pos.indexOf('bottom') >= 0) top = y + hghgap - 1;
|
||||
else if (pos.indexOf('center') >= 0) top = y + hghgap / 2;
|
||||
else top = 0;
|
||||
|
||||
left = left < x ? x : left;
|
||||
|
@ -330,7 +335,7 @@ zUtl = {
|
|||
|
||||
|
||||
intsToString: function (ary) {
|
||||
if (!ary) return "";
|
||||
if (!ary) return '';
|
||||
|
||||
var sb = [];
|
||||
for (var j = 0, k = ary.length; j < k; ++j)
|
||||
|
@ -370,7 +375,7 @@ zUtl = {
|
|||
|
||||
|
||||
appendAttr: function (nm, val, force) {
|
||||
return val || force ? ' ' + nm + '="' + val + '"': "";
|
||||
return val || force ? ' ' + nm + '="' + val + '"': '';
|
||||
},
|
||||
|
||||
fireSized: function (wgt, bfsz) {
|
||||
|
@ -401,13 +406,14 @@ zUtl = {
|
|||
},
|
||||
|
||||
isImageLoading: function () {
|
||||
for (var img in _imgObjectMap) {
|
||||
for (var url in _imgObjectMap) {
|
||||
var img = _imgObjectMap[url];
|
||||
if (img.complete) {
|
||||
try {
|
||||
delete _imgMap[img.src];
|
||||
delete _imgMap[url];
|
||||
} catch (err) {}
|
||||
try {
|
||||
delete _imgObjectMap[img.src];
|
||||
delete _imgObjectMap[url];
|
||||
} catch (err) {}
|
||||
}
|
||||
}
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,514 @@
|
|||
|
||||
(function () {
|
||||
|
||||
function _cancel(o, sid, finish) {
|
||||
var key = o.getKey(sid),
|
||||
uplder = o.uploaders[key];
|
||||
if (uplder)
|
||||
uplder.destroy(finish);
|
||||
delete o.uploaders[key];
|
||||
}
|
||||
function _initUploader(o, form, val) {
|
||||
var key = o.getKey(o.sid),
|
||||
uplder = new zul.Uploader(o, key, form, val);
|
||||
zul.Upload.start(uplder);
|
||||
o.uploaders[key] = uplder;
|
||||
}
|
||||
function _start(o, form, val) {
|
||||
|
||||
|
||||
_initUploader(o, form, val);
|
||||
o.sid++;
|
||||
o.initContent();
|
||||
}
|
||||
function _onchange(evt) {
|
||||
var n = this,
|
||||
upload = n._ctrl,
|
||||
wgt = upload._wgt,
|
||||
dt = wgt.desktop,
|
||||
action = zk.ajaxURI('/upload', {desktop:dt,au:true}) + '?uuid=' + wgt.uuid + '&dtid=' + dt.id + '&sid=' + upload.sid
|
||||
+ (upload.maxsize !== '' ? '&maxsize=' + upload.maxsize : '')
|
||||
+ (upload.isNative ? '&native=true' : ''),
|
||||
form = n.form;
|
||||
form.action = action;
|
||||
|
||||
|
||||
var p = form.parentNode;
|
||||
p.parentNode.removeChild(p);
|
||||
upload._formDetached = true;
|
||||
var fileName = !n.files || n.files.length == 1 ? n.value : (function(files){
|
||||
var fns = [];
|
||||
for (var len = files.length; len--;)
|
||||
fns.unshift(files[len].name);
|
||||
return fns.join(",");
|
||||
})(n.files);
|
||||
_start(n._ctrl, form, fileName);
|
||||
}
|
||||
|
||||
if (zk.opera) {
|
||||
var _syncQue = [], _syncId;
|
||||
function _syncNow() {
|
||||
for (var j = _syncQue.length; j--;)
|
||||
_syncQue[j].sync();
|
||||
}
|
||||
function _addSyncQue(upld) {
|
||||
if (!_syncQue.length)
|
||||
_syncId = setInterval(_syncNow, 1500);
|
||||
|
||||
_syncQue.push(upld);
|
||||
}
|
||||
function _rmSyncQue(upld) {
|
||||
_syncQue.$remove(upld);
|
||||
if (_syncId && !_syncQue.length) {
|
||||
clearInterval(_syncId);
|
||||
_syncId = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
zul.Upload = zk.$extends(zk.Object, {
|
||||
sid: 0,
|
||||
|
||||
$init: function(wgt, parent, clsnm) {
|
||||
this.uploaders = {};
|
||||
|
||||
var cls;
|
||||
for (var attrs = clsnm.split(','), i = 0, len = attrs.length; i < len; i++) {
|
||||
var attr = attrs[i].trim();
|
||||
if (attr.startsWith('maxsize='))
|
||||
this.maxsize = attr.match(new RegExp(/maxsize=([^,]*)/))[1];
|
||||
else if (attr.startsWith('multiple='))
|
||||
this.multiple = attr.match(new RegExp(/multiple=([^,]*)/))[1];
|
||||
else if (attr.startsWith('accept='))
|
||||
this.accept = attr.match(new RegExp(/accept=([^,]*)/))[1];
|
||||
else if (attr == 'native')
|
||||
this.isNative = true;
|
||||
else if (attr != 'true')
|
||||
cls = attr;
|
||||
}
|
||||
|
||||
this._clsnm = cls || '';
|
||||
|
||||
this._wgt = wgt;
|
||||
this._parent = parent;
|
||||
if (wgt._tooltiptext)
|
||||
this._tooltiptext = wgt._tooltiptext;
|
||||
|
||||
this.initContent();
|
||||
},
|
||||
|
||||
sync: function () {
|
||||
if (!this._formDetached) {
|
||||
var wgt = this._wgt,
|
||||
ref = wgt.$n(),
|
||||
parent = this._parent,
|
||||
outer = parent ? parent.lastChild : ref.nextSibling,
|
||||
inp = outer.firstChild.firstChild,
|
||||
refof = zk(ref).revisedOffset(),
|
||||
outerof = jq(outer).css({top: '0', left: '0'}).zk.revisedOffset(),
|
||||
diff = inp.offsetWidth - ref.offsetWidth,
|
||||
st = outer.style;
|
||||
st.top = (refof[1] - outerof[1]) + "px";
|
||||
st.left = refof[0] - outerof[0] - diff + "px";
|
||||
|
||||
inp.style.height = ref.offsetHeight + 'px';
|
||||
inp.style.clip = 'rect(auto,auto,auto,' + diff + 'px)';
|
||||
}
|
||||
},
|
||||
initContent: function () {
|
||||
var wgt = this._wgt,
|
||||
parent = this._parent,
|
||||
ref = wgt.$n(), dt = wgt.desktop,
|
||||
html = '<span class="z-upload"'
|
||||
+ (this._tooltiptext? ' title="'+ this._tooltiptext+'"' : '')
|
||||
+'><form enctype="multipart/form-data" method="POST">'
|
||||
+ '<input name="file" type="file"'
|
||||
|
||||
+ (this.multiple == 'true' ? ' multiple="" multiple' : '')
|
||||
+ (this.accept ? ' accept="' + this.accept + '"' : '')
|
||||
+ ' hidefocus="true" style="height:'
|
||||
+ ref.offsetHeight + 'px"/></form></span>';
|
||||
|
||||
if (parent)
|
||||
jq(parent).append(html);
|
||||
else
|
||||
jq(wgt).after(html);
|
||||
delete this._formDetached;
|
||||
|
||||
|
||||
if (!wgt._autodisable_self)
|
||||
this.sync();
|
||||
|
||||
var outer = this._outer = parent ? parent.lastChild : ref.nextSibling,
|
||||
inp = outer.firstChild.firstChild;
|
||||
|
||||
if (zk.opera) {
|
||||
outer.style.position = 'absolute';
|
||||
_addSyncQue(this);
|
||||
}
|
||||
|
||||
inp.z$proxy = ref;
|
||||
inp._ctrl = this;
|
||||
|
||||
jq(inp).change(_onchange);
|
||||
},
|
||||
|
||||
destroy: function () {
|
||||
if (zk.opera)
|
||||
_rmSyncQue(this);
|
||||
|
||||
jq(this._outer).remove();
|
||||
this._wgt = this._parent = null;
|
||||
for (var v in this.uploaders) {
|
||||
var uplder = this.uploaders[v];
|
||||
if (uplder) {
|
||||
delete this.uploaders[v];
|
||||
uplder.destroy();
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
getKey: function (sid) {
|
||||
return (this._wgt ? this._wgt.uuid : '' )+ '_uplder_' + sid;
|
||||
},
|
||||
|
||||
cancel: function (sid) {
|
||||
_cancel(this, sid);
|
||||
},
|
||||
|
||||
finish: function (sid) {
|
||||
_cancel(this, sid, true);
|
||||
}
|
||||
},{
|
||||
|
||||
error: function (msg, uuid, sid) {
|
||||
var wgt = zk.Widget.$(uuid);
|
||||
if (wgt) {
|
||||
jq.alert(msg, {desktop: wgt.desktop, icon: 'ERROR'});
|
||||
zul.Upload.close(uuid, sid);
|
||||
}
|
||||
},
|
||||
|
||||
close: function (uuid, sid) {
|
||||
var wgt = zk.Widget.$(uuid);
|
||||
if (!wgt || !wgt._uplder) return;
|
||||
wgt._uplder.cancel(sid);
|
||||
},
|
||||
|
||||
sendResult: function (uuid, contentId, sid) {
|
||||
var wgt = zk.Widget.$(uuid);
|
||||
if (!wgt || !wgt._uplder) return;
|
||||
wgt._uplder.finish(sid);
|
||||
zAu.send(new zk.Event(wgt.desktop, "updateResult", {
|
||||
contentId: contentId,
|
||||
wid: wgt.uuid,
|
||||
sid: sid
|
||||
}));
|
||||
},
|
||||
|
||||
isFinish: function (wgt) {
|
||||
for (var key = (typeof wgt == 'string' ? wgt : wgt.uuid) + '_uplder_',
|
||||
f = zul.Upload.files, i = f.length; i--;)
|
||||
if (f[0].id.startsWith(key))
|
||||
return false;
|
||||
return true;
|
||||
},
|
||||
|
||||
start: function (uplder) {
|
||||
var files = zul.Upload.files;
|
||||
if (uplder)
|
||||
files.push(uplder);
|
||||
if (files[0] && !files[0].isStart) {
|
||||
files[0].isStart = true;
|
||||
files[0].start();
|
||||
}
|
||||
},
|
||||
|
||||
destroy: function (uplder) {
|
||||
for (var files = zul.Upload.files, i = files.length; i--;)
|
||||
if (files[i].id == uplder.id) {
|
||||
files.splice(i, 1);
|
||||
break;
|
||||
}
|
||||
zul.Upload.start();
|
||||
},
|
||||
files: []
|
||||
});
|
||||
|
||||
zul.Uploader = zk.$extends(zk.Object, {
|
||||
|
||||
$init: function (upload, id, form, flnm) {
|
||||
this.id = id;
|
||||
this.flnm = flnm;
|
||||
this._upload = upload;
|
||||
this._form = form;
|
||||
this._parent = form.parentNode;
|
||||
this._sid = upload.sid;
|
||||
this._wgt = upload._wgt;
|
||||
|
||||
var viewer, self = this;
|
||||
if (!upload._clsnm) viewer = new zul.UploadViewer(this, flnm);
|
||||
else
|
||||
zk.$import(upload._clsnm, function (cls) {
|
||||
viewer = new cls(self, flnm);
|
||||
});
|
||||
this.viewer = viewer;
|
||||
},
|
||||
|
||||
getWidget: function () {
|
||||
return this._wgt;
|
||||
},
|
||||
|
||||
destroy: function (finish) {
|
||||
this.end(finish);
|
||||
if (this._form) {
|
||||
jq(this._form.parentNode).remove();
|
||||
jq('#' + this.id + '_ifm').remove();
|
||||
}
|
||||
this._form = this._upload = this._wgt = null;
|
||||
},
|
||||
|
||||
start: function () {
|
||||
var wgt = this._wgt,
|
||||
frameId = this.id + '_ifm';
|
||||
|
||||
document.body.appendChild(this._parent);
|
||||
if (!jq('#' + frameId).length)
|
||||
jq.newFrame(frameId);
|
||||
this._form.target = frameId;
|
||||
this._form.submit();
|
||||
this._form.style.display = "none";
|
||||
|
||||
var self = this,
|
||||
data = 'cmd=uploadInfo&dtid=' + wgt.desktop.id
|
||||
+ '&wid=' + wgt.uuid + '&sid=' + this._sid;
|
||||
|
||||
if (zul.Uploader._tmupload)
|
||||
clearInterval(zul.Uploader._tmupload);
|
||||
|
||||
function t() {
|
||||
jq.ajax({
|
||||
type: 'POST',
|
||||
url: zk.ajaxURI('/upload', {desktop: wgt.desktop, au: true}),
|
||||
data: data,
|
||||
dataType: 'text',
|
||||
success: function(data) {
|
||||
var d = data.split(',');
|
||||
if (data.startsWith('error:')) {
|
||||
self._echo = true;
|
||||
zul.Uploader.clearInterval(self.id);
|
||||
if (wgt) {
|
||||
self.cancel();
|
||||
zul.Upload.error(data.substring(6, data.length), wgt.uuid, self._sid);
|
||||
}
|
||||
} else if (!self.update(zk.parseInt(d[0]), zk.parseInt(d[1])))
|
||||
zul.Uploader.clearInterval(self.id);
|
||||
},
|
||||
complete: function(req, status) {
|
||||
var v;
|
||||
if ((v = req.getResponseHeader("ZK-Error")) == "404"
|
||||
|| v == "410" || status == 'error'
|
||||
|| status == 404 || status == 405 || status == 410) {
|
||||
zul.Uploader.clearInterval(self.id);
|
||||
var wgt = self.getWidget();
|
||||
if (wgt) {
|
||||
self.cancel();
|
||||
zul.Upload.error(msgzk.FAILED_TO_RESPONSE, wgt.uuid, self._sid);
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
t.id = this.id;
|
||||
|
||||
zul.Uploader.clearInterval = function (id) {
|
||||
if (t.id == id) {
|
||||
clearInterval(zul.Uploader._tmupload);
|
||||
zul.Uploader._tmupload = undefined;
|
||||
}
|
||||
};
|
||||
zul.Uploader._tmupload = setInterval(t, 1000);
|
||||
|
||||
zul.wgt.ADBS.autodisable(wgt);
|
||||
},
|
||||
|
||||
cancel: function () {
|
||||
zul.Uploader.clearInterval(this.id);
|
||||
if (this._upload)
|
||||
this._upload.cancel(this._sid);
|
||||
},
|
||||
|
||||
update: function (sent, total) {
|
||||
var wgt = this.getWidget();
|
||||
if (!wgt || total <= 0)
|
||||
if (this._echo)
|
||||
this.end();
|
||||
else
|
||||
return true;
|
||||
else if (zul.Uploader._tmupload) {
|
||||
this._echo = true;
|
||||
if (sent >= 0 && sent <= 100)
|
||||
this.viewer.update(sent, total);
|
||||
return sent >= 0 && sent < 100;
|
||||
}
|
||||
return false;
|
||||
},
|
||||
|
||||
end: function (finish) {
|
||||
this.viewer.destroy(finish);
|
||||
zul.Upload.destroy(this);
|
||||
this._echo = true;
|
||||
|
||||
|
||||
var wgt, upload, aded, parent;
|
||||
if ((wgt = this._wgt) && (upload = this._upload) &&
|
||||
(aded = upload._aded)) {
|
||||
wgt._uplder = null;
|
||||
aded.onResponse();
|
||||
upload._aded = null;
|
||||
|
||||
|
||||
if (wgt._uplder != null)
|
||||
wgt._uplder.destroy();
|
||||
if ((parent = upload._parent) && !jq(parent).parents('html').length) {
|
||||
upload._parent = wgt._getUploadRef();
|
||||
upload.initContent();
|
||||
}
|
||||
wgt._uplder = upload;
|
||||
wgt._uplder.sync();
|
||||
delete wgt._autodisable_self;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
function _addUM(uplder, flnm) {
|
||||
var flman = zul.UploadViewer.flman;
|
||||
if (!flman || !flman.desktop) {
|
||||
if (flman) flman.detach();
|
||||
zul.UploadViewer.flman = flman = new zul.UploadManager();
|
||||
uplder.getWidget().getPage().appendChild(flman);
|
||||
}
|
||||
flman.removeFile(uplder);
|
||||
flman.addFile(uplder);
|
||||
}
|
||||
function _initUM(uplder, flnm) {
|
||||
if (zul.UploadManager)
|
||||
return _addUM(uplder, flnm);
|
||||
|
||||
zk.load('zul.wgt,zul.box', function() {
|
||||
|
||||
zul.UploadManager = zk.$extends(zul.wgt.Popup, {
|
||||
$init: function () {
|
||||
this.$supers('$init', arguments);
|
||||
this._files = {};
|
||||
this.setSclass('z-fileupload-manager');
|
||||
},
|
||||
onFloatUp: function(ctl) {
|
||||
var wgt = ctl.origin;
|
||||
if (!this.isVisible())
|
||||
return;
|
||||
this.setTopmost();
|
||||
},
|
||||
|
||||
getFileItem: function(id) {
|
||||
return this._files[id] || zk.Widget.$(id);
|
||||
},
|
||||
|
||||
addFile: function(uplder) {
|
||||
var id = uplder.id,
|
||||
flnm = uplder.flnm,
|
||||
prog = this.getFileItem(id);
|
||||
if (!prog) {
|
||||
prog = new zul.wgt.Div({
|
||||
uuid: id,
|
||||
children: [new zul.wgt.Label({
|
||||
value: flnm + ':'
|
||||
}), new zul.box.Box({
|
||||
mold: 'horizontal',
|
||||
children: [new zul.wgt.Progressmeter({
|
||||
id: id,
|
||||
sclass: 'z-fileupload-progress'
|
||||
})
|
||||
, new zul.wgt.Div({
|
||||
sclass: 'z-fileupload-remove z-icon-times',
|
||||
listeners: {
|
||||
onClick: function () {
|
||||
var uuid = id.substring(0, id.indexOf('_uplder_'));
|
||||
zul.Uploader.clearInterval(id);
|
||||
var wgt = zk.Widget.$(uuid);
|
||||
if (wgt) wgt._uplder.cancel(id.substring(id.lastIndexOf('_')+1, id.length));
|
||||
}
|
||||
}
|
||||
})]
|
||||
}), new zul.wgt.Label({id: id + '_total'}), new zul.wgt.Separator()]
|
||||
});
|
||||
|
||||
try {
|
||||
this.appendChild(prog);
|
||||
} catch (e) {}
|
||||
this._files[id] = prog;
|
||||
}
|
||||
return prog;
|
||||
},
|
||||
|
||||
updateFile: function(uplder, val, total) {
|
||||
var id = uplder.id,
|
||||
prog = this.getFileItem(id);
|
||||
if (!prog) return;
|
||||
prog.$f(id).setValue(val);
|
||||
prog.$f(id + '_total').setValue(total);
|
||||
},
|
||||
|
||||
removeFile: function(uplder) {
|
||||
var id = uplder.id,
|
||||
prog = this.getFileItem(id);
|
||||
if (prog)
|
||||
prog.detach();
|
||||
delete this._files[id];
|
||||
var close = true;
|
||||
for (var p in this._files)
|
||||
if (!(close = false))
|
||||
break;
|
||||
|
||||
if (close)
|
||||
this.close();
|
||||
},
|
||||
|
||||
open: function(wgt, position) {
|
||||
this.$super('open', wgt, null, position || 'after_start', {
|
||||
sendOnOpen: false,
|
||||
disableMask: true
|
||||
});
|
||||
}
|
||||
});
|
||||
_addUM(uplder, flnm);
|
||||
});
|
||||
}
|
||||
|
||||
zul.UploadViewer = zk.$extends(zk.Object, {
|
||||
|
||||
$init: function (uplder, flnm) {
|
||||
this._uplder = uplder;
|
||||
_initUM(uplder, flnm);
|
||||
},
|
||||
|
||||
update: function (sent, total) {
|
||||
var flman = zul.UploadViewer.flman;
|
||||
if (flman) {
|
||||
if (!flman.isOpen())
|
||||
flman.open(this._uplder.getWidget());
|
||||
flman.updateFile(this._uplder, sent, msgzk.FILE_SIZE+Math.round(total/1024)+msgzk.KBYTES);
|
||||
}
|
||||
},
|
||||
|
||||
destroy: function () {
|
||||
var flman = zul.UploadViewer.flman;
|
||||
if (flman)
|
||||
flman.removeFile(this._uplder);
|
||||
}
|
||||
});
|
||||
|
||||
})();
|
|
@ -260,4 +260,8 @@ public class AtmosphereServerPush implements ServerPush {
|
|||
return "[" + thread + ',' + nActive + ']';
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void resume() {
|
||||
}
|
||||
}
|
||||
|
|
|
@ -38,10 +38,7 @@ Copyright (C) 2007 Ashley G Ramdass (ADempiere WebUI).
|
|||
<javascript src="/js/persist-min.js" charset="UTF-8"/>
|
||||
<javascript src="/js/token.js" charset="UTF-8"/>
|
||||
<javascript src="/js/window.js" charset="UTF-8"/>
|
||||
<!-- The bug workaround by the following patch should have been fixed in 6.5.2 -->
|
||||
<!-- javascript src="/js/jquery-patch.js" charset="UTF-8"/-->
|
||||
<javascript src="/js/jquery.slimscroll.min.js" charset="UTF-8"/>
|
||||
<javascript src="/js/jquery-ui-1.10.1.min.js" charset="UTF-8"/>
|
||||
<javascript src="/js/html2canvas.js" charset="UTF-8"/>
|
||||
|
||||
<javascript package="jawwa.atmosphere" merge="false" />
|
||||
|
|
|
@ -213,8 +213,8 @@ public class AdempiereWebUI extends Window implements EventListener<Event>, IWeb
|
|||
HttpSession httpSess = (HttpSession) currSess.getNativeSession();
|
||||
String x_Forward_IP = Executions.getCurrent().getHeader("X-Forwarded-For");
|
||||
|
||||
MSession mSession = MSession.get (ctx, x_Forward_IP!=null ? x_Forward_IP : currSess.getRemoteAddr(),
|
||||
currSess.getRemoteHost(), httpSess.getId() );
|
||||
MSession mSession = MSession.get (ctx, x_Forward_IP!=null ? x_Forward_IP : Executions.getCurrent().getRemoteAddr(),
|
||||
Executions.getCurrent().getRemoteHost(), httpSess.getId() );
|
||||
if (clientInfo.userAgent != null) {
|
||||
mSession.setDescription(mSession.getDescription() + "\n" + clientInfo.toString());
|
||||
mSession.saveEx();
|
||||
|
@ -323,11 +323,11 @@ public class AdempiereWebUI extends Window implements EventListener<Event>, IWeb
|
|||
Env.getCtx().clear();
|
||||
session.invalidate();
|
||||
|
||||
if (desktopCache != null)
|
||||
desktopCache.removeDesktop(Executions.getCurrent().getDesktop());
|
||||
|
||||
//redirect to login page
|
||||
Executions.sendRedirect("index.zul");
|
||||
|
||||
if (desktopCache != null)
|
||||
desktopCache.removeDesktop(Executions.getCurrent().getDesktop());
|
||||
}
|
||||
public void logoutAfterTabDestroyed(){
|
||||
Session session = logout0();
|
||||
|
|
|
@ -483,6 +483,7 @@ public class GridView extends Vbox implements EventListener<Event>, IdSpace, IFi
|
|||
if (headerWidth > estimatedWidth)
|
||||
estimatedWidth = headerWidth;
|
||||
|
||||
//TODO: test whether still needed for zk7
|
||||
//hflex=min for first column not working well
|
||||
if (i > 0)
|
||||
{
|
||||
|
|
|
@ -314,7 +314,7 @@ public class DefaultDesktop extends TabbedDesktop implements MenuListener, Seria
|
|||
w.getChildren().clear();
|
||||
sideController.render(w, this, false);
|
||||
|
||||
Clients.response(new AuScript("$('.slimScroll .z-anchorlayout-body').slimScroll({height: '100%',railVisible: true, alwaysVisible: false});"));
|
||||
Clients.response(new AuScript("$('.slimScroll.z-anchorlayout').slimScroll({height: '100%',railVisible: true, alwaysVisible: false});"));
|
||||
}
|
||||
|
||||
public void onEvent(Event event)
|
||||
|
|
|
@ -65,7 +65,7 @@ public class HelpController
|
|||
public HelpController()
|
||||
{
|
||||
dashboardLayout = new Anchorlayout();
|
||||
dashboardLayout.setSclass("dashboard-layout slimScroll");
|
||||
dashboardLayout.setSclass("dashboard-layout");
|
||||
dashboardLayout.setVflex("1");
|
||||
dashboardLayout.setHflex("1");
|
||||
}
|
||||
|
@ -73,7 +73,7 @@ public class HelpController
|
|||
public void render(Component parent, IDesktop desktopImpl)
|
||||
{
|
||||
Style style = new Style();
|
||||
style.setContent(".z-anchorlayout-body { overflow:auto } .z-anchorchildren { overflow:visible } ");
|
||||
style.setContent(".z-anchorlayout { overflow:auto } .z-anchorchildren { overflow:visible } ");
|
||||
style.setPage(parent.getPage());
|
||||
|
||||
parent.appendChild(dashboardLayout);
|
||||
|
|
|
@ -264,9 +264,11 @@ public class WAttachment extends Window implements EventListener<Event>
|
|||
|
||||
bLoad.setImage(ThemeManager.getThemeResource("images/Import24.png"));
|
||||
bLoad.setSclass("img-btn");
|
||||
bLoad.setAttribute("org.zkoss.zul.image.preload", Boolean.TRUE);
|
||||
bLoad.setId("bLoad");
|
||||
// bLoad.setAttribute("org.zkoss.zul.image.preload", Boolean.TRUE);
|
||||
bLoad.setTooltiptext(Msg.getMsg(Env.getCtx(), "Load"));
|
||||
bLoad.setUpload(AdempiereWebUI.getUploadSetting());
|
||||
// bLoad.setUpload(AdempiereWebUI.getUploadSetting());
|
||||
bLoad.setUpload("true,accept=audio/*|video/*|image/*|MIME_type,native");
|
||||
bLoad.addEventListener(Events.ON_UPLOAD, this);
|
||||
|
||||
bDelete.addEventListener(Events.ON_CLICK, this);
|
||||
|
|
|
@ -66,6 +66,7 @@ public class WindowContainer extends AbstractUIPart
|
|||
tabbox = new Tabbox();
|
||||
tabbox.setSclass("desktop-tabbox");
|
||||
tabbox.setId("desktop_tabbox");
|
||||
tabbox.setMaximalHeight(true);
|
||||
tabbox.addEventListener(ON_DEFER_SET_SELECTED_TAB, new EventListener<Event>() {
|
||||
@Override
|
||||
public void onEvent(Event event) throws Exception {
|
||||
|
@ -76,8 +77,8 @@ public class WindowContainer extends AbstractUIPart
|
|||
});
|
||||
|
||||
Tabpanels tabpanels = new Tabpanels();
|
||||
tabpanels.setVflex("1");
|
||||
tabpanels.setHflex("1");
|
||||
tabpanels.setHeight("100%");
|
||||
tabpanels.setWidth("100%");
|
||||
Tabs tabs = new Tabs();
|
||||
|
||||
tabbox.appendChild(tabs);
|
||||
|
|
|
@ -37,10 +37,7 @@ import org.zkoss.zk.ui.Execution;
|
|||
import org.zkoss.zk.ui.Executions;
|
||||
import org.zkoss.zk.ui.Session;
|
||||
import org.zkoss.zk.ui.event.Event;
|
||||
import org.zkoss.zk.ui.event.EventThreadCleanup;
|
||||
import org.zkoss.zk.ui.event.EventThreadInit;
|
||||
import org.zkoss.zk.ui.event.EventThreadResume;
|
||||
import org.zkoss.zk.ui.event.EventThreadSuspend;
|
||||
import org.zkoss.zk.ui.sys.DesktopCache;
|
||||
import org.zkoss.zk.ui.sys.DesktopCtrl;
|
||||
import org.zkoss.zk.ui.sys.ServerPush;
|
||||
|
@ -57,7 +54,7 @@ import org.zkoss.zk.ui.util.ExecutionInit;
|
|||
* @version $Revision: 0.10 $
|
||||
*/
|
||||
public class SessionContextListener implements ExecutionInit,
|
||||
ExecutionCleanup, EventThreadInit, EventThreadResume, EventThreadCleanup, EventThreadSuspend, DesktopCleanup, DesktopInit
|
||||
ExecutionCleanup, EventThreadInit, DesktopCleanup, DesktopInit
|
||||
{
|
||||
public static final String SERVLET_SESSION_ID = "servlet.sessionId";
|
||||
public static final String SESSION_CTX = "WebUISessionContext";
|
||||
|
@ -121,6 +118,7 @@ public class SessionContextListener implements ExecutionInit,
|
|||
*
|
||||
* @see ExecutionInit#init(Execution, Execution)
|
||||
*/
|
||||
@Override
|
||||
public void init(Execution exec, Execution parent)
|
||||
{
|
||||
//in servlet thread
|
||||
|
@ -144,6 +142,7 @@ public class SessionContextListener implements ExecutionInit,
|
|||
* @param errs
|
||||
* @see ExecutionCleanup#cleanup(Execution, Execution, List)
|
||||
*/
|
||||
@Override
|
||||
public void cleanup(Execution exec, Execution parent, List<Throwable> errs)
|
||||
{
|
||||
//in servlet thread
|
||||
|
@ -163,6 +162,7 @@ public class SessionContextListener implements ExecutionInit,
|
|||
* @param evt
|
||||
* @see EventThreadInit#prepare(Component, Event)
|
||||
*/
|
||||
@Override
|
||||
public void prepare(Component comp, Event evt)
|
||||
{
|
||||
//in servlet thread
|
||||
|
@ -171,129 +171,22 @@ public class SessionContextListener implements ExecutionInit,
|
|||
{
|
||||
setupExecutionContextFromSession(Executions.getCurrent());
|
||||
}
|
||||
|
||||
//set locale
|
||||
Locales.setThreadLocal(Env.getLanguage(ServerContext.getCurrentInstance()).getLocale());
|
||||
}
|
||||
|
||||
/**
|
||||
* copy event thread's ThreadLocal to servlet thread
|
||||
* @param comp
|
||||
* @param evt
|
||||
* @throws Exception
|
||||
* @see {@link EventThreadSuspend#afterSuspend(Component, Event)}
|
||||
*/
|
||||
public void afterSuspend(Component comp, Event evt) throws Exception
|
||||
{
|
||||
//in servlet thread
|
||||
if (ServerContext.getCurrentInstance().isEmpty() || !isContextValid())
|
||||
{
|
||||
setupExecutionContextFromSession(Executions.getCurrent());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* get from servlet thread's ThreadLocal
|
||||
* @param comp
|
||||
* @param evt
|
||||
* @see EventThreadResume#beforeResume(Component, Event)
|
||||
*/
|
||||
public void beforeResume(Component comp, Event evt)
|
||||
{
|
||||
//in servlet thread
|
||||
//check is thread local context have been setup
|
||||
if (ServerContext.getCurrentInstance().isEmpty() || !isContextValid())
|
||||
{
|
||||
setupExecutionContextFromSession(Executions.getCurrent());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param comp
|
||||
* @param evt
|
||||
* @see EventThreadResume#abortResume(Component, Event)
|
||||
*/
|
||||
public void abortResume(Component comp, Event evt)
|
||||
{
|
||||
//in servlet thread
|
||||
}
|
||||
|
||||
/**
|
||||
* copy event thread's ThreadLocal to servlet thread's ThreadLocal
|
||||
* @param comp
|
||||
* @param evt
|
||||
* @see EventThreadCleanup#complete(Component, Event)
|
||||
*/
|
||||
public void complete(Component comp, Event evt) throws Exception
|
||||
{
|
||||
//in servlet thread
|
||||
if (ServerContext.getCurrentInstance().isEmpty() || !isContextValid())
|
||||
{
|
||||
setupExecutionContextFromSession(Executions.getCurrent());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* copy servlet thread's ThreadLocal to event thread's ThreadLocal
|
||||
* @param comp
|
||||
* @param evt
|
||||
* @see EventThreadInit#init(Component, Event)
|
||||
*/
|
||||
@Override
|
||||
public boolean init(Component comp, Event evt)
|
||||
{
|
||||
//in event processing thread
|
||||
if (ServerContext.getCurrentInstance().isEmpty() || !isContextValid())
|
||||
{
|
||||
setupExecutionContextFromSession(Executions.getCurrent());
|
||||
}
|
||||
|
||||
//set locale
|
||||
Locales.setThreadLocal(Env.getLanguage(ServerContext.getCurrentInstance()).getLocale());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* get from event thread's ThreadLocal
|
||||
* @param comp
|
||||
* @param evt
|
||||
* @param obj
|
||||
* @throws Exception
|
||||
* @see {@link EventThreadSuspend#beforeSuspend(Component, Event, Object)}
|
||||
*/
|
||||
public void beforeSuspend(Component comp, Event evt, Object obj)
|
||||
throws Exception
|
||||
{
|
||||
//in event processing thread
|
||||
}
|
||||
|
||||
/**
|
||||
* copy servlet thread's ThreadLocal to event thread's ThreadLocal
|
||||
* @param comp
|
||||
* @param evt
|
||||
* @see EventThreadResume#afterResume(Component, Event)
|
||||
*/
|
||||
public void afterResume(Component comp, Event evt)
|
||||
{
|
||||
//in event processing thread
|
||||
if (ServerContext.getCurrentInstance().isEmpty() || !isContextValid())
|
||||
{
|
||||
setupExecutionContextFromSession(Executions.getCurrent());
|
||||
}
|
||||
|
||||
//set locale
|
||||
Locales.setThreadLocal(Env.getLanguage(ServerContext.getCurrentInstance()).getLocale());
|
||||
}
|
||||
|
||||
/**
|
||||
* get from event thread's ThreadLocal
|
||||
* @param comp
|
||||
* @param evt
|
||||
* @param errs
|
||||
* @see EventThreadCleanup#cleanup(Component, Event, List)
|
||||
*/
|
||||
public void cleanup(Component comp, Event evt, List<Throwable> errs) throws Exception
|
||||
{
|
||||
//in event processing thread
|
||||
}
|
||||
|
||||
public static boolean isContextValid() {
|
||||
Execution exec = Executions.getCurrent();
|
||||
Properties ctx = ServerContext.getCurrentInstance();
|
||||
|
|
|
@ -355,7 +355,6 @@ public class FindWindow extends Window implements EventListener<Event>, ValueCha
|
|||
contentSimple.setStyle("width: 100%; position: relative");
|
||||
contentSimple.makeNoStrip();
|
||||
contentSimple.setHflex("1");
|
||||
contentSimple.setSizedByContent(true);
|
||||
|
||||
Columns columns = new Columns();
|
||||
Column column = new Column();
|
||||
|
@ -441,7 +440,6 @@ public class FindWindow extends Window implements EventListener<Event>, ValueCha
|
|||
confirmPanel.setPack("end");
|
||||
|
||||
advancedPanel = new Listbox();
|
||||
advancedPanel.setSizedByContent(true);
|
||||
ListHead listhead = new ListHead();
|
||||
listhead.setSizable(true);
|
||||
|
||||
|
@ -576,7 +574,7 @@ public class FindWindow extends Window implements EventListener<Event>, ValueCha
|
|||
winAdvanced = new Window();
|
||||
winLookupRecord = new Window();
|
||||
Tabpanel tabPanel = new Tabpanel();
|
||||
tabPanel.setStyle("height: 100%; width: 99%; padding-right: 2px; margin: auto;");
|
||||
tabPanel.setStyle("height: 100%; width: 100%; padding-right: 2px; margin: auto;");
|
||||
tabPanel.appendChild(winLookupRecord);
|
||||
tabPanel.setId("simpleSearch");
|
||||
winMain.addTab(tabPanel, Msg.getMsg(Env.getCtx(), "Find").replaceAll("&", ""),false, true);
|
||||
|
|
|
@ -509,6 +509,16 @@ Copyright (C) 2005 Potix Corporation. All Rights Reserved.
|
|||
the browser code.
|
||||
</description>
|
||||
</function>
|
||||
<function>
|
||||
<name>resolveThemeURL</name>
|
||||
<function-class>org.zkoss.web.fn.ServletFns</function-class>
|
||||
<function-signature>
|
||||
java.lang.String resolveThemeURL(java.lang.String)
|
||||
</function-signature>
|
||||
<description>
|
||||
Resolves a URL to point to resource served by the current theme.
|
||||
</description>
|
||||
</function>
|
||||
|
||||
<function>
|
||||
<name>escapeXML</name>
|
||||
|
|
|
@ -183,4 +183,14 @@ Copyright (C) 2012 Potix Corporation. All Rights Reserved.
|
|||
Loads a specific theme properties and apply them into the request scope
|
||||
]]></description>
|
||||
</function>
|
||||
<function>
|
||||
<name>getCurrentTheme</name>
|
||||
<function-class>org.zkoss.web.fn.ThemeFns</function-class>
|
||||
<function-signature>
|
||||
java.lang.String getCurrentTheme()
|
||||
</function-signature>
|
||||
<description><![CDATA[
|
||||
Returns the current theme name
|
||||
]]></description>
|
||||
</function>
|
||||
</taglib>
|
||||
|
|
|
@ -70,6 +70,18 @@ Copyright (C) 2005 Potix Corporation. All Rights Reserved.
|
|||
</description>
|
||||
</function>
|
||||
|
||||
|
||||
<function>
|
||||
<name>isEditionValid</name>
|
||||
<function-class>org.zkoss.zk.fn.ZkFns</function-class>
|
||||
<function-signature>
|
||||
boolean isEditionValid()
|
||||
</function-signature>
|
||||
<description>
|
||||
Returns the edition whether valid or invalid.
|
||||
</description>
|
||||
</function>
|
||||
|
||||
<function>
|
||||
<name>encodeWithZK</name>
|
||||
<function-class>org.zkoss.zk.fn.ZkFns</function-class>
|
||||
|
|
|
@ -122,7 +122,7 @@
|
|||
</mime-mapping>
|
||||
<mime-mapping>
|
||||
<extension>js</extension>
|
||||
<mime-type>application/x-javascript</mime-type>
|
||||
<mime-type>text/javascript</mime-type>
|
||||
</mime-mapping>
|
||||
<mime-mapping>
|
||||
<extension>pdf</extension>
|
||||
|
|
|
@ -148,7 +148,7 @@
|
|||
</mime-mapping>
|
||||
<mime-mapping>
|
||||
<extension>js</extension>
|
||||
<mime-type>application/x-javascript</mime-type>
|
||||
<mime-type>text/javascript</mime-type>
|
||||
</mime-mapping>
|
||||
<mime-mapping>
|
||||
<extension>pdf</extension>
|
||||
|
|
|
@ -575,6 +575,7 @@
|
|||
<xs:element ref="hbox" />
|
||||
<xs:element ref="hlayout" />
|
||||
<xs:element ref="html" />
|
||||
<xs:element ref="idspace" />
|
||||
<xs:element ref="iframe" />
|
||||
<xs:element ref="image" />
|
||||
<xs:element ref="imagemap" />
|
||||
|
@ -585,6 +586,7 @@
|
|||
<xs:element ref="longbox" />
|
||||
<xs:element ref="menubar" />
|
||||
<xs:element ref="menupopup" />
|
||||
<xs:element ref="navbar" />
|
||||
<xs:element ref="paging" />
|
||||
<xs:element ref="panel" />
|
||||
<xs:element ref="pivottable" />
|
||||
|
@ -657,6 +659,7 @@
|
|||
<xs:element ref="hbox" />
|
||||
<xs:element ref="hlayout" />
|
||||
<xs:element ref="html" />
|
||||
<xs:element ref="idspace" />
|
||||
<xs:element ref="iframe" />
|
||||
<xs:element ref="image" />
|
||||
<xs:element ref="imagemap" />
|
||||
|
@ -667,6 +670,7 @@
|
|||
<xs:element ref="longbox" />
|
||||
<xs:element ref="menubar" />
|
||||
<xs:element ref="menupopup" />
|
||||
<xs:element ref="navbar" />
|
||||
<xs:element ref="paging" />
|
||||
<xs:element ref="panel" />
|
||||
<xs:element ref="pivottable" />
|
||||
|
@ -788,9 +792,27 @@
|
|||
<xs:attribute name="align" type="alignAttrType" use="optional" />
|
||||
<xs:attribute name="border" type="xs:string" use="optional" />
|
||||
<xs:attribute name="src" type="xs:string" use="optional" />
|
||||
<xs:attribute name="preload" type="audioPreloadAttrType" use="optional" />
|
||||
<xs:attribute name="controls" type="booleanType" use="optional" />
|
||||
<xs:attribute name="loop" type="booleanType" use="optional" />
|
||||
<xs:attribute name="autostart" type="booleanType" use="optional" />
|
||||
<xs:attribute name="autoplay" type="booleanType" use="optional" />
|
||||
<xs:attributeGroup ref="rootAttrGroup" />
|
||||
</xs:complexType>
|
||||
<xs:simpleType name="audioPreloadAttrType">
|
||||
<xs:union>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="none" />
|
||||
<xs:enumeration value="auto" />
|
||||
<xs:enumeration value="metadata" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="annotationType" />
|
||||
</xs:simpleType>
|
||||
</xs:union>
|
||||
</xs:simpleType>
|
||||
<!-- auxhead -->
|
||||
<xs:element name="auxhead" type="auxheadType" />
|
||||
<xs:complexType name="auxheadType">
|
||||
|
@ -1595,6 +1617,14 @@
|
|||
<xs:attribute name="content" type="xs:string" use="optional" />
|
||||
<xs:attributeGroup ref="rootAttrGroup" />
|
||||
</xs:complexType>
|
||||
<!-- idspace -->
|
||||
<xs:element name="idspace" type="idspaceType" />
|
||||
<xs:complexType name="idspaceType" mixed="true">
|
||||
<xs:group ref="anyGroup" minOccurs="0" maxOccurs="unbounded" />
|
||||
<xs:attributeGroup ref="xulElementAttrGroup" />
|
||||
<xs:attributeGroup ref="mouseExtAttrGroup" />
|
||||
<xs:attributeGroup ref="rootAttrGroup" />
|
||||
</xs:complexType>
|
||||
<!-- iframe -->
|
||||
<xs:element name="iframe" type="iframeType" />
|
||||
<xs:complexType name="iframeType">
|
||||
|
@ -1941,6 +1971,46 @@
|
|||
<xs:group ref="baseGroup" minOccurs="0" maxOccurs="unbounded" />
|
||||
<xs:attributeGroup ref="xulElementAttrGroup" />
|
||||
</xs:complexType>
|
||||
<!-- nav -->
|
||||
<xs:element name="nav" type="navType" />
|
||||
<xs:complexType name="navType">
|
||||
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:group ref="baseGroup" />
|
||||
<xs:element ref="navitem" />
|
||||
</xs:choice>
|
||||
<xs:attributeGroup ref="xulElementAttrGroup" />
|
||||
<xs:attribute name="onOpen" type="xs:string" use="optional" />
|
||||
</xs:complexType>
|
||||
<!-- navbar -->
|
||||
<xs:element name="navbar" type="navbarType" />
|
||||
<xs:complexType name="navbarType">
|
||||
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:group ref="baseGroup" />
|
||||
<xs:element ref="nav" />
|
||||
<xs:element ref="navitem" />
|
||||
</xs:choice>
|
||||
<xs:attributeGroup ref="xulElementAttrGroup" />
|
||||
<xs:attribute name="orient" type="orientAttrType" use="optional" />
|
||||
<xs:attribute name="collapsed" type="booleanType" use="optional" />
|
||||
<xs:attribute name="onSelect" type="xs:string" use="optional" />
|
||||
<xs:attributeGroup ref="rootAttrGroup" />
|
||||
</xs:complexType>
|
||||
<!-- navitem -->
|
||||
<xs:element name="navitem" type="navitemType" />
|
||||
<xs:complexType name="navitemType">
|
||||
<xs:group ref="baseGroup" minOccurs="0" maxOccurs="unbounded" />
|
||||
<xs:attributeGroup ref="labelImageElementAttrGroup" />
|
||||
<xs:attribute name="href" type="xs:string" use="optional" />
|
||||
<xs:attribute name="target" type="xs:string" use="optional" />
|
||||
<xs:attribute name="disabled" type="booleanType" use="optional" />
|
||||
<xs:attribute name="src" type="xs:string" use="optional" />
|
||||
</xs:complexType>
|
||||
<!-- navseparator -->
|
||||
<xs:element name="navseparator" type="navseparatorType" />
|
||||
<xs:complexType name="navseparatorType">
|
||||
<xs:group ref="baseGroup" minOccurs="0" maxOccurs="unbounded" />
|
||||
<xs:attributeGroup ref="xulElementAttrGroup" />
|
||||
</xs:complexType>
|
||||
<!-- north -->
|
||||
<xs:element name="north" type="northType" />
|
||||
<xs:complexType name="northType">
|
||||
|
@ -2067,6 +2137,7 @@
|
|||
<xs:element ref="portalchildren" />
|
||||
</xs:choice>
|
||||
<xs:attributeGroup ref="xulElementAttrGroup" />
|
||||
<xs:attribute name="orient" type="orientAttrType" use="optional" />
|
||||
</xs:complexType>
|
||||
<!-- progressmeter -->
|
||||
<xs:element name="progressmeter" type="progressmeterType" />
|
||||
|
@ -2299,11 +2370,27 @@
|
|||
<xs:attribute name="selectedIndex" type="intType" use="optional" />
|
||||
<xs:attribute name="selectedTab" type="xs:string" use="optional" />
|
||||
<xs:attribute name="selectedPanel" type="xs:string" use="optional" />
|
||||
<xs:attribute name="orient" type="orientAttrType" use="optional" />
|
||||
<xs:attribute name="orient" type="tabOrientAttrType" use="optional" />
|
||||
<xs:attribute name="maximalHeight" type="booleanType" use="optional" />
|
||||
<xs:attribute name="onRightClick" type="xs:string" use="optional" />
|
||||
<xs:attribute name="onSelect" type="xs:string" use="optional" />
|
||||
<xs:attributeGroup ref="rootAttrGroup" />
|
||||
</xs:complexType>
|
||||
<xs:simpleType name="tabOrientAttrType">
|
||||
<xs:union>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="top" />
|
||||
<xs:enumeration value="left" />
|
||||
<xs:enumeration value="right" />
|
||||
<xs:enumeration value="down" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="annotationType" />
|
||||
</xs:simpleType>
|
||||
</xs:union>
|
||||
</xs:simpleType>
|
||||
<!-- tabpanel -->
|
||||
<xs:element name="tabpanel" type="tabpanelType" />
|
||||
<xs:complexType name="tabpanelType" mixed="true">
|
||||
|
@ -2355,7 +2442,7 @@
|
|||
<!-- template -->
|
||||
<xs:element name="template" type="templateType" />
|
||||
<xs:complexType name="templateType">
|
||||
<xs:group ref="baseGroup" minOccurs="0" maxOccurs="unbounded" />
|
||||
<xs:group ref="anyGroup" minOccurs="0" maxOccurs="unbounded" />
|
||||
<xs:attribute name="name" type="xs:string" use="required" />
|
||||
<xs:attribute name="src" type="xs:string" use="optional" />
|
||||
<xs:attribute name="if" type="xs:string" use="optional" />
|
||||
|
@ -2432,6 +2519,7 @@
|
|||
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:group ref="baseGroup" />
|
||||
<xs:element ref="auxhead" />
|
||||
<xs:element ref="frozen" />
|
||||
</xs:choice>
|
||||
<xs:choice>
|
||||
<xs:sequence>
|
||||
|
@ -2864,6 +2952,9 @@
|
|||
<xs:element ref="menu" />
|
||||
<xs:element ref="menuitem" />
|
||||
<xs:element ref="menuseparator" />
|
||||
<xs:element ref="nav" />
|
||||
<xs:element ref="navitem" />
|
||||
<xs:element ref="navseparator" />
|
||||
<xs:element ref="north" />
|
||||
<xs:element ref="rows" />
|
||||
<xs:element ref="row" />
|
||||
|
|
|
@ -1,37 +0,0 @@
|
|||
//patch for jquery bug under firefox
|
||||
(function(undefined) {
|
||||
var rupper = /([A-Z]|^ms)/g;
|
||||
if ( document.defaultView && document.defaultView.getComputedStyle ) {
|
||||
var old = document.defaultView.getComputedStyle;
|
||||
getComputedStyle = function( elem, name ) {
|
||||
var ret, defaultView, computedStyle;
|
||||
|
||||
if ( !(defaultView = elem.ownerDocument.defaultView) ) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
if (name == undefined || name == null) {
|
||||
try {
|
||||
return old(elem, null);
|
||||
} catch (err) {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
name = name.replace( rupper, "-$1" ).toLowerCase();
|
||||
|
||||
try {
|
||||
if ( (computedStyle = old( elem, null )) ) {
|
||||
ret = computedStyle.getPropertyValue( name );
|
||||
if ( ret === "" && !jQuery.contains( elem.ownerDocument.documentElement, elem ) ) {
|
||||
ret = jQuery.style( elem, name );
|
||||
}
|
||||
}
|
||||
} catch (err) {
|
||||
return "";
|
||||
}
|
||||
|
||||
return ret;
|
||||
};
|
||||
}
|
||||
})();
|
File diff suppressed because one or more lines are too long
|
@ -2,13 +2,15 @@
|
|||
* Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
|
||||
* and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
|
||||
*
|
||||
* Version: 1.0.6
|
||||
* Version: 1.3.1
|
||||
*
|
||||
*/
|
||||
(function(d){jQuery.fn.extend({slimScroll:function(m){var a=d.extend({wheelStep:20,width:"auto",height:"250px",size:"7px",color:"#000",position:"right",distance:"1px",start:"top",opacity:0.4,alwaysVisible:!1,disableFadeOut:!1,railVisible:!1,railColor:"#333",railOpacity:"0.2",railClass:"slimScrollRail",barClass:"slimScrollBar",wrapperClass:"slimScrollDiv",allowPageScroll:!1,scroll:0,touchScrollStep:200},m);this.each(function(){function f(h,d,f){var g=h,e=b.outerHeight()-c.outerHeight();d&&(g=parseInt(c.css("top"))+
|
||||
h*parseInt(a.wheelStep)/100*c.outerHeight(),g=Math.min(Math.max(g,0),e),c.css({top:g+"px"}));j=parseInt(c.css("top"))/(b.outerHeight()-c.outerHeight());g=j*(b[0].scrollHeight-b.outerHeight());f&&(g=h,h=g/b[0].scrollHeight*b.outerHeight(),h=Math.min(Math.max(h,0),e),c.css({top:h+"px"}));b.scrollTop(g);q();l()}function r(){s=Math.max(b.outerHeight()/b[0].scrollHeight*b.outerHeight(),A);c.css({height:s+"px"})}function q(){r();clearTimeout(w);j==~~j&&(n=a.allowPageScroll,x!=j&&b.trigger("slimscroll",
|
||||
0==~~j?"top":"bottom"));x=j;s>=b.outerHeight()?n=!0:(c.stop(!0,!0).fadeIn("fast"),a.railVisible&&e.stop(!0,!0).fadeIn("fast"))}function l(){a.alwaysVisible||(w=setTimeout(function(){if((!a.disableFadeOut||!p)&&!t&&!u)c.fadeOut("slow"),e.fadeOut("slow")},1E3))}var p,t,u,w,y,s,j,x,A=30,n=!1,b=d(this);if(b.parent().hasClass("slimScrollDiv")){var k=b.scrollTop(),c=b.parent().find(".slimScrollBar"),e=b.parent().find(".slimScrollRail");r();m&&("scrollTo"in m?k=parseInt(a.scrollTo):"scrollBy"in m&&(k+=parseInt(a.scrollBy)),
|
||||
f(k,!1,!0))}else{a.height="auto"==a.height?b.parent().innerHeight():a.height;k=d("<div></div>").addClass(a.wrapperClass).css({position:"relative",overflow:"hidden",width:a.width,height:a.height});b.css({overflow:"hidden",width:a.width,height:a.height});var e=d("<div></div>").addClass(a.railClass).css({width:a.size,height:"100%",position:"absolute",top:0,display:a.alwaysVisible&&a.railVisible?"block":"none","border-radius":a.size,background:a.railColor,opacity:a.railOpacity,zIndex:90}),c=d("<div></div>").addClass(a.barClass).css({background:a.color,
|
||||
width:a.size,position:"absolute",top:0,opacity:a.opacity,display:a.alwaysVisible?"block":"none","border-radius":a.size,BorderRadius:a.size,MozBorderRadius:a.size,WebkitBorderRadius:a.size,zIndex:99}),z="right"==a.position?{right:a.distance}:{left:a.distance};e.css(z);c.css(z);b.wrap(k);b.parent().append(c);b.parent().append(e);c.draggable({axis:"y",containment:"parent",start:function(){u=!0},stop:function(){u=!1;l()},drag:function(){f(0,d(this).position().top,!1)}});e.hover(function(){q()},function(){l()});
|
||||
c.hover(function(){t=!0},function(){t=!1});b.hover(function(){p=!0;q();l()},function(){p=!1;l()});b.bind("touchstart",function(a){a.originalEvent.touches.length&&(y=a.originalEvent.touches[0].pageY)});b.bind("touchmove",function(b){b.originalEvent.preventDefault();b.originalEvent.touches.length&&f((y-b.originalEvent.touches[0].pageY)/a.touchScrollStep,!0)});var v=function(a){if(p){a=a||window.event;var b=0;a.wheelDelta&&(b=-a.wheelDelta/120);a.detail&&(b=a.detail/3);f(b,!0);a.preventDefault&&!n&&
|
||||
a.preventDefault();n||(a.returnValue=!1)}};(function(){window.addEventListener?(this.addEventListener("DOMMouseScroll",v,!1),this.addEventListener("mousewheel",v,!1)):document.attachEvent("onmousewheel",v)})();r();"bottom"==a.start?(c.css({top:b.outerHeight()-c.outerHeight()}),f(0,!0)):"object"==typeof a.start&&(f(d(a.start).position().top,null,!0),a.alwaysVisible||c.hide())}});return this}});jQuery.fn.extend({slimscroll:jQuery.fn.slimScroll})})(jQuery);
|
||||
(function(f){jQuery.fn.extend({slimScroll:function(h){var a=f.extend({width:"auto",height:"250px",size:"7px",color:"#000",position:"right",distance:"1px",start:"top",opacity:0.4,alwaysVisible:!1,disableFadeOut:!1,railVisible:!1,railColor:"#333",railOpacity:0.2,railDraggable:!0,railClass:"slimScrollRail",barClass:"slimScrollBar",wrapperClass:"slimScrollDiv",allowPageScroll:!1,wheelStep:20,touchScrollStep:200,borderRadius:"7px",railBorderRadius:"7px"},h);this.each(function(){function r(d){if(s){d=d||
|
||||
window.event;var c=0;d.wheelDelta&&(c=-d.wheelDelta/120);d.detail&&(c=d.detail/3);f(d.target||d.srcTarget||d.srcElement).closest("."+a.wrapperClass).is(b.parent())&&m(c,!0);d.preventDefault&&!k&&d.preventDefault();k||(d.returnValue=!1)}}function m(d,f,h){k=!1;var e=d,g=b.outerHeight()-c.outerHeight();f&&(e=parseInt(c.css("top"))+d*parseInt(a.wheelStep)/100*c.outerHeight(),e=Math.min(Math.max(e,0),g),e=0<d?Math.ceil(e):Math.floor(e),c.css({top:e+"px"}));l=parseInt(c.css("top"))/(b.outerHeight()-c.outerHeight());
|
||||
e=l*(b[0].scrollHeight-b.outerHeight());h&&(e=d,d=e/b[0].scrollHeight*b.outerHeight(),d=Math.min(Math.max(d,0),g),c.css({top:d+"px"}));b.scrollTop(e);b.trigger("slimscrolling",~~e);v();p()}function C(){window.addEventListener?(this.addEventListener("DOMMouseScroll",r,!1),this.addEventListener("mousewheel",r,!1),this.addEventListener("MozMousePixelScroll",r,!1)):document.attachEvent("onmousewheel",r)}function w(){u=Math.max(b.outerHeight()/b[0].scrollHeight*b.outerHeight(),D);c.css({height:u+"px"});
|
||||
var a=u==b.outerHeight()?"none":"block";c.css({display:a})}function v(){w();clearTimeout(A);l==~~l?(k=a.allowPageScroll,B!=l&&b.trigger("slimscroll",0==~~l?"top":"bottom")):k=!1;B=l;u>=b.outerHeight()?k=!0:(c.stop(!0,!0).fadeIn("fast"),a.railVisible&&g.stop(!0,!0).fadeIn("fast"))}function p(){a.alwaysVisible||(A=setTimeout(function(){a.disableFadeOut&&s||(x||y)||(c.fadeOut("slow"),g.fadeOut("slow"))},1E3))}var s,x,y,A,z,u,l,B,D=30,k=!1,b=f(this);if(b.parent().hasClass(a.wrapperClass)){var n=b.scrollTop(),
|
||||
c=b.parent().find("."+a.barClass),g=b.parent().find("."+a.railClass);w();if(f.isPlainObject(h)){if("height"in h&&"auto"==h.height){b.parent().css("height","auto");b.css("height","auto");var q=b.parent().parent().height();b.parent().css("height",q);b.css("height",q)}if("scrollTo"in h)n=parseInt(a.scrollTo);else if("scrollBy"in h)n+=parseInt(a.scrollBy);else if("destroy"in h){c.remove();g.remove();b.unwrap();return}m(n,!1,!0)}}else{a.height="auto"==a.height?b.parent().height():a.height;n=f("<div></div>").addClass(a.wrapperClass).css({position:"relative",
|
||||
overflow:"hidden",width:a.width,height:a.height});b.css({overflow:"hidden",width:a.width,height:a.height});var g=f("<div></div>").addClass(a.railClass).css({width:a.size,height:"100%",position:"absolute",top:0,display:a.alwaysVisible&&a.railVisible?"block":"none","border-radius":a.railBorderRadius,background:a.railColor,opacity:a.railOpacity,zIndex:90}),c=f("<div></div>").addClass(a.barClass).css({background:a.color,width:a.size,position:"absolute",top:0,opacity:a.opacity,display:a.alwaysVisible?
|
||||
"block":"none","border-radius":a.borderRadius,BorderRadius:a.borderRadius,MozBorderRadius:a.borderRadius,WebkitBorderRadius:a.borderRadius,zIndex:99}),q="right"==a.position?{right:a.distance}:{left:a.distance};g.css(q);c.css(q);b.wrap(n);b.parent().append(c);b.parent().append(g);a.railDraggable&&c.bind("mousedown",function(a){var b=f(document);y=!0;t=parseFloat(c.css("top"));pageY=a.pageY;b.bind("mousemove.slimscroll",function(a){currTop=t+a.pageY-pageY;c.css("top",currTop);m(0,c.position().top,!1)});
|
||||
b.bind("mouseup.slimscroll",function(a){y=!1;p();b.unbind(".slimscroll")});return!1}).bind("selectstart.slimscroll",function(a){a.stopPropagation();a.preventDefault();return!1});g.hover(function(){v()},function(){p()});c.hover(function(){x=!0},function(){x=!1});b.hover(function(){s=!0;v();p()},function(){s=!1;p()});b.bind("touchstart",function(a,b){a.originalEvent.touches.length&&(z=a.originalEvent.touches[0].pageY)});b.bind("touchmove",function(b){k||b.originalEvent.preventDefault();b.originalEvent.touches.length&&
|
||||
(m((z-b.originalEvent.touches[0].pageY)/a.touchScrollStep,!0),z=b.originalEvent.touches[0].pageY)});w();"bottom"===a.start?(c.css({top:b.outerHeight()-c.outerHeight()}),m(0,!0)):"top"!==a.start&&(m(f(a.start).position().top,null,!0),a.alwaysVisible||c.hide());C()}});return this}});jQuery.fn.extend({slimscroll:jQuery.fn.slimScroll})})(jQuery);
|
|
@ -18,6 +18,10 @@ html,body {
|
|||
background-color: #E5E5E5;
|
||||
}
|
||||
|
||||
.login-window .z-window-content {
|
||||
background-color: #E5E5E5;
|
||||
}
|
||||
|
||||
.login-box-body {
|
||||
width: 660px;
|
||||
background-image: url(../images/login-box-bg.png);
|
||||
|
@ -112,7 +116,7 @@ html,body {
|
|||
.desktop-header {
|
||||
background-color: #F4F4F4;
|
||||
width: 100%;
|
||||
height: 35px;
|
||||
height: 46px;
|
||||
border-bottom: 1px solid #C5C5C5;
|
||||
}
|
||||
|
||||
|
@ -121,6 +125,11 @@ html,body {
|
|||
font-size: 10px;
|
||||
}
|
||||
|
||||
.desktop-header-username:hover {
|
||||
color: blue;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.menu-href {
|
||||
font-size: 11px;
|
||||
font-weight: normal;
|
||||
|
@ -146,12 +155,16 @@ html,body {
|
|||
height: 10px;
|
||||
}
|
||||
|
||||
.window-container-toolbar-btn .z-toolbarbutton-cnt img {
|
||||
.z-toolbar.z-toolbar-tabs {
|
||||
padding-top: 0px;
|
||||
}
|
||||
|
||||
.window-container-toolbar-btn .z-toolbarbutton-content img {
|
||||
width: 22px;
|
||||
height: 22px;
|
||||
}
|
||||
|
||||
.window-container-toolbar-btn.context-help-btn .z-toolbarbutton-cnt img {
|
||||
.window-container-toolbar-btn.context-help-btn .z-toolbarbutton-content img {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
padding: 3px 3px;
|
||||
|
@ -181,7 +194,7 @@ html,body {
|
|||
padding: 0px;
|
||||
}
|
||||
|
||||
.z-toolbarbutton-cnt {
|
||||
.z-toolbarbutton-content {
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
|
@ -190,8 +203,9 @@ html,body {
|
|||
display:inline-block;
|
||||
margin-left: 1px;
|
||||
margin-right: 1px;
|
||||
width: 26px;
|
||||
height: 24px;
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
padding: 1px;
|
||||
}
|
||||
|
||||
.breadcrumb-toolbar-button {
|
||||
|
@ -210,13 +224,12 @@ html,body {
|
|||
font-size: 12px;
|
||||
}
|
||||
|
||||
.toolbar-button .z-toolbarbutton-body .z-toolbarbutton-cnt img {
|
||||
width: 22px;
|
||||
height: 22px;
|
||||
padding: 0px 1px 0px 1px;
|
||||
border-style: solid;
|
||||
border-width: 1px;
|
||||
border-color: transparent;
|
||||
.toolbar-button .z-toolbarbutton-content {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
padding: 1px;
|
||||
border: none;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.depressed img {
|
||||
|
@ -227,38 +240,7 @@ html,body {
|
|||
}
|
||||
|
||||
<%-- button --%>
|
||||
.z-button .z-button-tl,
|
||||
.z-button .z-button-tr,
|
||||
.z-button .z-button-bl,
|
||||
.z-button .z-button-br
|
||||
{
|
||||
display: none;
|
||||
background: none !important;
|
||||
}
|
||||
|
||||
.z-button .z-button-tm,
|
||||
.z-button .z-button-bm
|
||||
{
|
||||
display: none;
|
||||
background: none !important;
|
||||
}
|
||||
|
||||
.z-button .z-button-cl,
|
||||
.z-button .z-button-cr
|
||||
{
|
||||
display: none;
|
||||
background: none !important;
|
||||
}
|
||||
|
||||
.z-button .z-button-cm
|
||||
{
|
||||
background: none !important;
|
||||
border: none !important;
|
||||
margin: 0 !important;
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
.z-button-os, .z-button {
|
||||
.z-button {
|
||||
display: inline-block;
|
||||
margin: 0px;
|
||||
padding: 4px 20px;
|
||||
|
@ -293,23 +275,20 @@ html,body {
|
|||
margin: 0px !important;
|
||||
}
|
||||
|
||||
.z-button-os:hover, .z-button-over,
|
||||
.z-button-os:focus, .z-button-focus,
|
||||
.z-button-os:active, .z-button-clk,
|
||||
.z-button-os.active,
|
||||
.z-button-os.disabled, .z-button-disd,
|
||||
.z-button-os[disabled] {
|
||||
.z-button-hover,
|
||||
.z-button-focus,
|
||||
.z-button-click,
|
||||
.z-button-disabled {
|
||||
color: #333333;
|
||||
background-color: #e6e6e6;
|
||||
}
|
||||
|
||||
.z-button-os:active, .z-button-clk,
|
||||
.z-button-os.active {
|
||||
.z-button-click {
|
||||
background-color: #cccccc \9;
|
||||
}
|
||||
|
||||
.z-button-os:hover, .z-button-over,
|
||||
.z-button-os:focus, .z-button-focus {
|
||||
.z-button-hover,
|
||||
.z-button-focus {
|
||||
color: #333333;
|
||||
text-decoration: none;
|
||||
background-position: 0 -15px;
|
||||
|
@ -319,12 +298,11 @@ html,body {
|
|||
transition: background-position 0.1s linear;
|
||||
}
|
||||
|
||||
.z-button-os:focus, .z-button-focus {
|
||||
.z-button-focus {
|
||||
outline: 5px auto -webkit-focus-ring-color;
|
||||
}
|
||||
|
||||
.z-button-os.active, .z-button-clk,
|
||||
.z-button-os:active {
|
||||
.z-button-click {
|
||||
background-image: none;
|
||||
outline: 0;
|
||||
-webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
|
||||
|
@ -332,8 +310,7 @@ html,body {
|
|||
box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
|
||||
.z-button-os.disabled, .z-button-disd,
|
||||
.z-button-os[disabled] {
|
||||
.z-button-disabled {
|
||||
cursor: default;
|
||||
background-image: none;
|
||||
opacity: 0.65;
|
||||
|
@ -357,7 +334,7 @@ html,body {
|
|||
display: inline-block;
|
||||
}
|
||||
|
||||
.z-button-os.btn-small {
|
||||
.z-button.btn-small {
|
||||
padding: 1px 5px;
|
||||
}
|
||||
|
||||
|
@ -374,7 +351,7 @@ div.wc-modal, div.wc-modal-none, div.wc-highlighted, div.wc-highlighted-none {
|
|||
}
|
||||
|
||||
.desktop-user-panel {
|
||||
text-align: right;
|
||||
float: right;
|
||||
}
|
||||
|
||||
.desktop-layout {
|
||||
|
@ -392,22 +369,25 @@ div.wc-modal, div.wc-modal-none, div.wc-highlighted, div.wc-highlighted-none {
|
|||
margin-right: 2px;
|
||||
}
|
||||
|
||||
.desktop-tabbox .z-tab .z-tab-hl, .desktop-tabbox .z-tab .z-tab-hr,
|
||||
.desktop-tabbox .z-tab .z-tab-hm {
|
||||
height: 22px;
|
||||
.desktop-tabbox .z-tab {
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
.desktop-tabbox .z-tab-seld .z-tab-hl, .desktop-tabbox .z-tab-seld .z-tab-hr,
|
||||
.desktop-tabbox .z-tab-seld .z-tab-hm {
|
||||
height: 21px;
|
||||
.desktop-tabbox .z-tab-selected {
|
||||
height: 25px;
|
||||
}
|
||||
|
||||
.desktop-tabbox .z-tab-seld {
|
||||
.desktop-tabbox .z-tab-selected {
|
||||
border-top: 2px solid #666;
|
||||
border-top-left-radius: 5px 5px;
|
||||
border-top-right-radius: 5px 5px;
|
||||
}
|
||||
|
||||
.desktop-tabbox .z-tab .z-tab-text {
|
||||
padding-top: 0px;
|
||||
padding-bottom: 0px;
|
||||
}
|
||||
|
||||
.desktop-north, .desktop-center {
|
||||
border: none;
|
||||
}
|
||||
|
@ -425,16 +405,25 @@ div.wc-modal, div.wc-modal-none, div.wc-highlighted, div.wc-highlighted-none {
|
|||
background-color: #FFFFFF
|
||||
}
|
||||
|
||||
.menu-search-panel .z-comboitem-img {
|
||||
.menu-search-panel .z-comboitem-image {
|
||||
padding-bottom:4px;
|
||||
}
|
||||
|
||||
.z-comboitem-img {
|
||||
vertical-align:top;
|
||||
.menu-search-panel-container .z-panel-body {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.menu-search-panel-container .z-panel-top .z-toolbar.z-toolbar-panel {
|
||||
padding-bottom: 0px;
|
||||
padding-top: 8px;
|
||||
}
|
||||
|
||||
.z-comboitem-image {
|
||||
--vertical-align:top;
|
||||
}
|
||||
|
||||
.z-combobox input {
|
||||
vertical-align:top;
|
||||
--vertical-align:top;
|
||||
}
|
||||
|
||||
.menu-panel .z-toolbar-panel {
|
||||
|
@ -457,17 +446,17 @@ div.wc-modal, div.wc-modal-none, div.wc-highlighted, div.wc-highlighted-none {
|
|||
padding-top: 4px;
|
||||
}
|
||||
|
||||
.desktop-left-column + .z-west-splt {
|
||||
.desktop-left-column + .z-west-splitter {
|
||||
border-top: none;
|
||||
border-right: 1px solid #c5c5c5;
|
||||
}
|
||||
|
||||
.desktop-right-column + .z-east-splt {
|
||||
.desktop-right-column + .z-east-splitter {
|
||||
border-top: none;
|
||||
border-left: 1px solid #c5c5c5;
|
||||
}
|
||||
|
||||
.z-south-splt, .z-west-splt, .z-east-splt, .z-north-splt {
|
||||
.z-south-splitter, .z-west-splitter, .z-east-splitter, .z-north-splitter {
|
||||
background: none !important;
|
||||
}
|
||||
|
||||
|
@ -483,15 +472,15 @@ div.wc-modal, div.wc-modal-none, div.wc-highlighted, div.wc-highlighted-none {
|
|||
border-top: 1px solid #c5c5c5;
|
||||
}
|
||||
|
||||
.desktop-left-column .z-anchorlayout-body, .desktop-right-column .z-anchorlayout-body {
|
||||
.desktop-left-column .z-anchorlayout, .desktop-right-column .z-anchorlayout {
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
.z-anchorlayout-body { overflow:auto }
|
||||
.z-anchorlayout { overflow:auto }
|
||||
|
||||
.z-anchorchildren { overflow:visible }
|
||||
|
||||
.slimScroll .z-anchorlayout-body { overflow:hidden }
|
||||
.slimScroll.z-anchorlayout { overflow:hidden }
|
||||
|
||||
.desktop-hometab {
|
||||
margin-left: 4px !important;
|
||||
|
@ -508,13 +497,13 @@ div.wc-modal, div.wc-modal-none, div.wc-highlighted, div.wc-highlighted-none {
|
|||
margin: 0px !important;
|
||||
}
|
||||
|
||||
.desktop-tabbox .z-tabs .z-toolbar-tabs .z-toolbarbutton-over .z-toolbarbutton-body {
|
||||
.desktop-tabbox .z-tabs .z-toolbar-tabs .z-toolbarbutton-hover {
|
||||
border: none !important;
|
||||
padding: 0px !important;
|
||||
margin: 0px !important;
|
||||
}
|
||||
|
||||
.desktop-tabbox .z-tabs .z-toolbar-tabs .z-toolbarbutton-over .z-toolbarbutton-cnt {
|
||||
.desktop-tabbox .z-tabs .z-toolbar-tabs .z-toolbarbutton-hover .z-toolbarbutton-content {
|
||||
background-image: none !important;
|
||||
background-color:#DDD !important;
|
||||
padding: 0px !important;
|
||||
|
@ -540,33 +529,27 @@ div.wc-modal, div.wc-modal-none, div.wc-highlighted, div.wc-highlighted-none {
|
|||
|
||||
.desktop-home-tabpanel {
|
||||
background-color: #FFFFFF;
|
||||
width: 99% !important;
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
.link {
|
||||
cursor:pointer;
|
||||
padding: 2px 2px 4px 4px;
|
||||
border: none !important;
|
||||
}
|
||||
|
||||
.link.z-toolbarbutton-over {
|
||||
border: none;
|
||||
padding: 1px 0;
|
||||
}
|
||||
|
||||
.link.z-toolbarbutton-over .z-toolbarbutton-body {
|
||||
border: none;
|
||||
padding: 0 1px;
|
||||
}
|
||||
|
||||
.link.z-toolbarbutton-over .z-toolbarbutton-cnt {
|
||||
background-image: none;
|
||||
color: blue;
|
||||
.link.z-toolbarbutton:hover {
|
||||
border: none !important;
|
||||
background-image: none !important;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.link.z-toolbarbutton:hover span {
|
||||
color: blue;
|
||||
}
|
||||
|
||||
<%-- dashlet --%>
|
||||
.z-panel-tl, .z-panel-tr,
|
||||
.z-panel-hr, .z-panel-hl,
|
||||
.z-panel-hm {
|
||||
.z-panel-head {
|
||||
background-image: none; background-color: #FFFFFF;
|
||||
}
|
||||
|
||||
|
@ -584,12 +567,12 @@ div.wc-modal, div.wc-modal-none, div.wc-highlighted, div.wc-highlighted-none {
|
|||
border: none;
|
||||
}
|
||||
|
||||
.z-panel-hl {
|
||||
.z-panel-head {
|
||||
padding-bottom: 4px;
|
||||
border-bottom: none;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.z-panel-hl .z-panel-header {
|
||||
.z-panel-head .z-panel-header {
|
||||
padding: 0 0 2px 0;
|
||||
color: #262626;
|
||||
background: #F4F4F4;
|
||||
|
@ -597,7 +580,7 @@ div.wc-modal, div.wc-modal-none, div.wc-highlighted, div.wc-highlighted-none {
|
|||
font-size: 13px;
|
||||
}
|
||||
|
||||
.z-caption .z-caption-l, .z-caption .z-caption-r {
|
||||
.z-caption .z-caption-content {
|
||||
padding: 0 0 2px 0;
|
||||
color: #262626;
|
||||
font-weight: 300;
|
||||
|
@ -605,9 +588,7 @@ div.wc-modal, div.wc-modal-none, div.wc-highlighted, div.wc-highlighted-none {
|
|||
cursor: move;
|
||||
}
|
||||
|
||||
.desktop-home-tabpanel .z-panel-tl, .desktop-home-tabpanel .z-panel-tr,
|
||||
.desktop-home-tabpanel .z-panel-hr, .desktop-home-tabpanel .z-panel-hl,
|
||||
.desktop-home-tabpanel .z-panel-hm {
|
||||
.desktop-home-tabpanel .z-panel-head {
|
||||
background-color: #FFFFFF;
|
||||
}
|
||||
|
||||
|
@ -717,7 +698,7 @@ div.wc-modal, div.wc-modal-none, div.wc-highlighted, div.wc-highlighted-none {
|
|||
width: 100%;
|
||||
}
|
||||
|
||||
.activities-box .z-button-os {
|
||||
.activities-box .z-button {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
|
@ -805,11 +786,11 @@ div.wc-modal, div.wc-modal-none, div.wc-highlighted, div.wc-highlighted-none {
|
|||
overflow-y: visible;
|
||||
}
|
||||
|
||||
.adwindow-detailpane-tabbox .z-tab-seld span.z-tab-text {
|
||||
.adwindow-detailpane-tabbox .z-tab-selected span.z-tab-text {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.adwindow-detailpane-tabbox .z-tab-seld span.z-tab-text:hover {
|
||||
.adwindow-detailpane-tabbox .z-tab-selected span.z-tab-text:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
|
@ -860,7 +841,7 @@ div.wc-modal, div.wc-modal-none, div.wc-highlighted, div.wc-highlighted-none {
|
|||
height: 200px;
|
||||
}
|
||||
|
||||
.adwindow-gridview-detail + .z-south-splt {
|
||||
.adwindow-gridview-detail + .z-south-splitter {
|
||||
border-top: 1px solid #C5C5C5;
|
||||
border-bottom: 1px solid #C5C5C5;
|
||||
}
|
||||
|
@ -913,7 +894,7 @@ div.wc-modal, div.wc-modal-none, div.wc-highlighted, div.wc-highlighted-none {
|
|||
background-color: #F9F9F9;
|
||||
}
|
||||
|
||||
.adtab-form-borderlayout .z-south-colpsd:before {
|
||||
.adtab-form-borderlayout .z-south-collapsed:before {
|
||||
content: '${u:cleanAmp(u:getMsg(u:getCtx(), "Detail"))}';
|
||||
position: relative;
|
||||
font-size: 12px;
|
||||
|
@ -928,7 +909,7 @@ div.wc-modal, div.wc-modal-none, div.wc-highlighted, div.wc-highlighted-none {
|
|||
background-image: none !important;
|
||||
}
|
||||
|
||||
.z-grid tbody tr.highlight td.row-indicator-seld {
|
||||
.z-grid tbody tr.highlight td.row-indicator-selected {
|
||||
background-color: transparent !important;
|
||||
background-image: url(${c:encodeURL('/theme/default/images/EditRecord16.png')}) !important;
|
||||
background-position: center;
|
||||
|
@ -983,26 +964,31 @@ div.wc-modal, div.wc-modal-none, div.wc-highlighted, div.wc-highlighted-none {
|
|||
width: 99%;
|
||||
}
|
||||
|
||||
.form-button img {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
<%-- Combobox --%>
|
||||
.z-combobox-disd {
|
||||
.z-combobox-disabled {
|
||||
color: black !important; cursor: default !important; opacity: 1; -moz-opacity: 1; -khtml-opacity: 1; filter: alpha(opacity=100);
|
||||
}
|
||||
|
||||
.z-combobox-disd * {
|
||||
.z-combobox-disabled * {
|
||||
color: black !important; cursor: default !important;
|
||||
}
|
||||
|
||||
.z-combobox-text-disd {
|
||||
.z-combobox-text-disabled {
|
||||
background-color: #ECEAE4 !important;
|
||||
}
|
||||
|
||||
<%-- Button --%>
|
||||
.z-button-disd {
|
||||
.z-button-disabled {
|
||||
color: black; cursor: default; opacity: .6; -moz-opacity: .6; -khtml-opacity: .6; filter: alpha(opacity=60);
|
||||
}
|
||||
|
||||
<%-- highlight focus form element --%>
|
||||
input:focus, textarea:focus, .z-combobox-inp:focus, z-datebox-inp:focus {
|
||||
input:focus, textarea:focus, .z-combobox-input:focus, z-datebox-input:focus {
|
||||
border: 1px solid #0000ff;
|
||||
}
|
||||
|
||||
|
@ -1010,7 +996,7 @@ input:focus, textarea:focus, .z-combobox-inp:focus, z-datebox-inp:focus {
|
|||
text-decoration: none; font-size: xx-small; vertical-align: top; color:red;
|
||||
}
|
||||
<%-- menu tree cell --%>
|
||||
.menu-treecell-cnt div {
|
||||
.menu-treecell-cnt {
|
||||
border: 0; margin: 0; padding: 0;
|
||||
font-family: ${c:property('org.zkoss.zul.theme.fontFamilyC')};
|
||||
font-size: ${c:property('org.zkoss.zul.theme.fontSizeM')};
|
||||
|
@ -1021,16 +1007,17 @@ input:focus, textarea:focus, .z-combobox-inp:focus, z-datebox-inp:focus {
|
|||
cursor: pointer;
|
||||
}
|
||||
|
||||
span.z-tree-tee, span.z-tree-last, span.z-tree-firstspacer {
|
||||
width:0px;
|
||||
.z-treecell-content {
|
||||
font-family: ${c:property('org.zkoss.zul.theme.fontFamilyC')};
|
||||
font-size: ${c:property('org.zkoss.zul.theme.fontSizeM')};
|
||||
}
|
||||
|
||||
.z-west-colpsd {
|
||||
.z-west-collapsed {
|
||||
cursor: pointer;
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
.z-east-colpsd {
|
||||
.z-east-collapsed {
|
||||
cursor: pointer;
|
||||
border-top: none;
|
||||
}
|
||||
|
@ -1042,10 +1029,10 @@ span.z-tree-tee, span.z-tree-last, span.z-tree-firstspacer {
|
|||
.z-intbox-focus, .z-intbox-focus input,
|
||||
.z-longbox-focus, .z-longbox-focus input,
|
||||
.z-doublebox-focus, .z-doublebox-focus input,
|
||||
.z-combobox-focus .z-combobox-inp,
|
||||
.z-checkbox-focus .z-checkbox-inp,
|
||||
.z-datebox-focus .z-datebox-inp,
|
||||
.z-timebox-focus .z-timebox-inp {
|
||||
.z-combobox-focus .z-combobox-input,
|
||||
.z-checkbox-focus .z-checkbox-input,
|
||||
.z-datebox-focus .z-datebox-input,
|
||||
.z-timebox-focus .z-timebox-input {
|
||||
background: #FFFFCC;
|
||||
}
|
||||
|
||||
|
@ -1151,6 +1138,7 @@ tr.z-group {
|
|||
overflow: hidden !important;
|
||||
border-bottom: 1px solid #CFCFCF !important;
|
||||
border-top: 1px solid #CFCFCF !important;
|
||||
padding: 4px 5px;
|
||||
}
|
||||
|
||||
<%-- Tablet --%>
|
||||
|
@ -1162,15 +1150,12 @@ tr.z-group {
|
|||
.z-tab-close {
|
||||
top:4px;
|
||||
margin-right:2px;
|
||||
}
|
||||
|
||||
.z-tab-hm-close {
|
||||
padding-right:18px;
|
||||
}
|
||||
|
||||
<%-- set color for text and label --%>
|
||||
.z-tab-seld .z-tab-text, .z-tab .z-tab-text, div.z-treefooter-cnt, div.z-treecell-cnt, div.z-treecol-cnt,
|
||||
.z-label, .z-toolbarbutton-cnt, tr.z-treerow, tr.z-treerow a, tr.z-treerow a:visited {
|
||||
.z-tab-selected .z-tab-text, .z-tab .z-tab-text, div.z-treefooter-content, div.z-treecell-content, div.z-treecol-content,
|
||||
.z-label, .z-toolbarbutton-content, tr.z-treerow, tr.z-treerow a, tr.z-treerow a:visited {
|
||||
color: #333;
|
||||
font-family: Helvetica,Arial,sans-serif;
|
||||
}
|
||||
|
@ -1180,10 +1165,6 @@ tr.z-group {
|
|||
background-color: #F0F0F0;
|
||||
}
|
||||
|
||||
span.z-tab-text {
|
||||
height: 13px;
|
||||
}
|
||||
|
||||
<%-- menu tree cell --%>
|
||||
div.z-tree-body td.menu-tree-cell {
|
||||
cursor: pointer;
|
||||
|
@ -1229,7 +1210,7 @@ div.simileAjax-bubble-container {
|
|||
z-index: 2800 !important;
|
||||
}
|
||||
|
||||
.info-panel .z-window-overlapped-bl, .info-panel .z-window-highlighted-bl {
|
||||
.info-panel .z-window-overlapped, .info-panel .z-window-highlighted {
|
||||
background-color: #F4F4F4 !important;
|
||||
}
|
||||
|
||||
|
@ -1252,7 +1233,7 @@ div.simileAjax-bubble-container {
|
|||
background-color: #F4F4F4;
|
||||
}
|
||||
|
||||
.info-panel .z-window-highlighted-cnt {
|
||||
.info-panel .z-window-highlighted .z-window-content {
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
|
@ -1260,13 +1241,12 @@ div.simileAjax-bubble-container {
|
|||
border: none;
|
||||
}
|
||||
|
||||
.z-window-embedded-cnt, .z-window-embedded-cm {
|
||||
.z-window-embedded .z-window-content {
|
||||
border: none;
|
||||
}
|
||||
|
||||
.z-window-embedded-tl, .z-window-embedded-tr, .z-window-embedded-hl, .z-window-embedded-hr,
|
||||
.z-window-embedded-hm, .z-window-embedded-cl, .z-window-embedded-cr,
|
||||
.z-window-embedded-bl, .z-window-embedded-br {
|
||||
.z-window-embedded .z-window-header,
|
||||
.z-window-embedded .z-window-content {
|
||||
background-image: none;
|
||||
}
|
||||
|
||||
|
@ -1324,8 +1304,7 @@ tbody.z-grid-empty-body td {
|
|||
}
|
||||
|
||||
<%-- notification message --%>
|
||||
.z-notification .z-notification-cl,
|
||||
.z-notification .z-notification-cnt {
|
||||
.z-notification .z-notification-content {
|
||||
width: 400px;
|
||||
}
|
||||
|
||||
|
@ -1334,11 +1313,11 @@ tbody.z-grid-empty-body td {
|
|||
}
|
||||
|
||||
<%-- toolbar popup dialog --%>
|
||||
.toolbar-popup-window .z-window-popup-cnt {
|
||||
margin-top: 6px;
|
||||
.toolbar-popup-window .z-window-popup .z-window-content {
|
||||
--margin-top: 6px;
|
||||
}
|
||||
|
||||
.toolbar-popup-window.process-buttons-popup .z-button-os {
|
||||
.toolbar-popup-window.process-buttons-popup .z-button {
|
||||
white-space: nowrap;
|
||||
width: 95%;
|
||||
text-align: left;
|
||||
|
@ -1349,29 +1328,25 @@ tbody.z-grid-empty-body td {
|
|||
}
|
||||
|
||||
.toolbar-popup-window::before {
|
||||
content: '';
|
||||
border-bottom: 7px solid rgba(0, 0, 0, 0.2);
|
||||
border-left: 7px solid transparent;
|
||||
border-right: 7px solid transparent;
|
||||
content: "";
|
||||
display: inline-block;
|
||||
left: 9px;
|
||||
position: absolute;
|
||||
width: 0px;
|
||||
height: 0px;
|
||||
top: -7px;
|
||||
left: 6px;
|
||||
border-top: 7px dashed transparent;
|
||||
border-left: 7px dashed transparent;
|
||||
border-right: 7px dashed transparent;
|
||||
border-bottom: 7px solid #ACACAC;
|
||||
}
|
||||
|
||||
.toolbar-popup-window-cnt::before {
|
||||
content: '';
|
||||
.toolbar-popup-window::after {
|
||||
border-bottom: 6px solid #FFFFFF;
|
||||
border-left: 6px solid transparent;
|
||||
border-right: 6px solid transparent;
|
||||
content: "";
|
||||
display: inline-block;
|
||||
left: 10px;
|
||||
position: absolute;
|
||||
width: 0px;
|
||||
height: 0px;
|
||||
top: -5px;
|
||||
left: 7px;
|
||||
border-top: 6px dashed transparent;
|
||||
border-left: 6px dashed transparent;
|
||||
border-right: 6px dashed transparent;
|
||||
border-bottom: 6px solid #FFF;
|
||||
top: -6px;
|
||||
}
|
||||
|
||||
.adwindow-detailpane-sub-tab::before {
|
||||
|
@ -1387,27 +1362,41 @@ tbody.z-grid-empty-body td {
|
|||
border-bottom: 5px solid transparent;
|
||||
}
|
||||
|
||||
i.grid-combobox-editor {
|
||||
width: 99% !important;
|
||||
span.grid-combobox-editor {
|
||||
width: 100% !important;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.grid-combobox-editor input {
|
||||
width: 100% !important;
|
||||
padding-right: 22px;
|
||||
box-sizing: border-box;
|
||||
-moz-box-sizing: border-box; /* Firefox */
|
||||
height: 21px;
|
||||
padding-right: 26px;
|
||||
border-bottom-right-radius: 6px;
|
||||
border-top-right-radius: 6px;
|
||||
border-right: 0px;
|
||||
}
|
||||
|
||||
.grid-combobox-editor .z-combobox-btn {
|
||||
.grid-combobox-editor.z-combobox-disabled input {
|
||||
border-bottom-right-radius: 3px;
|
||||
border-top-right-radius: 3px;
|
||||
border-right: 1px solid #cfcfcf;
|
||||
padding-right: 5px;
|
||||
}
|
||||
|
||||
.grid-combobox-editor .z-combobox-button {
|
||||
position: absolute;
|
||||
right: 0px;
|
||||
top: 0px;
|
||||
border-radius: 0px 0px;
|
||||
top: 1px;
|
||||
border-bottom-right-radius: 3px;
|
||||
border-top-right-radius: 3px;
|
||||
border-bottom-left-radius: 0px;
|
||||
border-top-left-radius: 0px;
|
||||
}
|
||||
|
||||
.grid-combobox-editor.z-combobox-focus .z-combobox-btn {
|
||||
.grid-combobox-editor input:focus {
|
||||
border-right: 0px;
|
||||
}
|
||||
|
||||
.grid-combobox-editor input:focus + .z-combobox-button {
|
||||
border-left: 1px solid #0000ff;
|
||||
}
|
||||
|
||||
|
@ -1420,67 +1409,46 @@ i.grid-combobox-editor {
|
|||
font-weight: bold;
|
||||
}
|
||||
|
||||
.z-window-embedded-cnt {
|
||||
.z-window-embedded .z-window-content {
|
||||
border: none;
|
||||
}
|
||||
|
||||
.z-window-overlapped-cm, .z-window-modal-cm, .z-window-highlighted-cm, .z-window-embedded-cm {
|
||||
.z-window-overlapped .z-window-content, .z-window-modal .z-window-content,
|
||||
.z-window-highlighted .z-window-content, .z-window-embedded .z-window-content {
|
||||
border: none;
|
||||
}
|
||||
|
||||
.z-window-overlapped-tl, .z-window-popup-tl, .z-window-modal-tl, .z-window-highlighted-tl, .embedded-dialog .z-window-embedded-tl
|
||||
{
|
||||
display: none;
|
||||
}
|
||||
|
||||
.z-window-overlapped-tr, .z-window-popup-tr, .z-window-modal-tr, .z-window-highlighted-tr, .embedded-dialog .z-window-embedded-tr
|
||||
{
|
||||
display: none;
|
||||
}
|
||||
|
||||
.z-window-overlapped-hl, .z-window-popup-hl, .z-window-modal-hl, .z-window-highlighted-hl, .embedded-dialog .z-window-embedded-hl {
|
||||
.z-window-overlapped .z-window-header, .z-window-popup .z-window-header,
|
||||
.z-window-modal .z-window-header, .z-window-highlighted .z-window-header, .embedded-dialog .z-window-embedded. .z-window-header {
|
||||
padding-top: 3px;
|
||||
}
|
||||
|
||||
.z-window-overlapped-tl, .z-window-popup-tl, .z-window-modal-tl, .z-window-highlighted-tl, .embedded-dialog .z-window-embedded-tl,
|
||||
.z-window-overlapped-tr, .z-window-popup-tr, .z-window-modal-tr, .z-window-highlighted-tr, .embedded-dialog .z-window-embedded-tr,
|
||||
.z-window-overlapped-hm, .z-window-popup-hm, .z-window-modal-hm, .z-window-highlighted-hm, .embedded-dialog .z-window-embedded-hm,
|
||||
.z-window-overlapped-hl, .z-window-popup-hl, .z-window-modal-hl, .z-window-highlighted-hl, .embedded-dialog .z-window-embedded-hl,
|
||||
.z-window-overlapped-hr, .z-window-popup-hr, .z-window-modal-hr, .z-window-highlighted-hr, .embedded-dialog .z-window-embedded-hr
|
||||
{
|
||||
.z-window .z-window-header {
|
||||
background-color: #484848;
|
||||
}
|
||||
|
||||
.z-window-overlapped-cl, .z-window-popup-cl, .z-window-modal-cl, .z-window-highlighted-cl, .embedded-dialog .z-window-embedded-cl
|
||||
.z-window-overlapped .z-window-content, .z-window-popup .z-window-content,
|
||||
.z-window-modal .z-window-content, .z-window-highlighted .z-window-content,
|
||||
.embedded-dialog .z-window-embedded .z-window-content
|
||||
{
|
||||
padding-left: 1px;
|
||||
border-left: 1px solid #c5c5c5;
|
||||
}
|
||||
|
||||
.z-window-overlapped-cr, .z-window-popup-cr, .z-window-modal-cr, .z-window-highlighted-cr, .embedded-dialog .z-window-embedded-cr
|
||||
{
|
||||
padding-right: 1px;
|
||||
border-right: 1px solid #c5c5c5;
|
||||
}
|
||||
|
||||
.z-window-overlapped-bl, .z-window-popup-bl, .z-window-modal-bl, .z-window-highlighted-bl, .embedded-dialog .z-window-embedded-bl
|
||||
.z-window-overlapped, .z-window-popup, .z-window-modal, .z-window-highlighted,
|
||||
.embedded-dialog .z-window-embedded
|
||||
{
|
||||
border-left: 1px solid #c5c5c5;
|
||||
border-right: 1px solid #c5c5c5;
|
||||
background-color: #fff;
|
||||
margin: 0px;
|
||||
padding-bottom: 3px;
|
||||
}
|
||||
|
||||
.z-window-overlapped-br, .z-window-popup-br, .z-window-modal-br, .z-window-highlighted-br, .embedded-dialog .z-window-embedded-br
|
||||
{
|
||||
display: none;
|
||||
}
|
||||
|
||||
.z-window-overlapped .z-window-overlapped-header,
|
||||
.z-window-popup .z-window-popup-header,
|
||||
.z-window-modal .z-window-modal-header,
|
||||
.z-window-highlighted .z-window-highlighted-header
|
||||
.z-window-overlapped .z-window-header,
|
||||
.z-window-popup .z-window-header,
|
||||
.z-window-modal .z-window-header,
|
||||
.z-window-highlighted .z-window-header
|
||||
{
|
||||
color: #fff;
|
||||
font-weight: bold;
|
||||
|
@ -1492,16 +1460,7 @@ i.grid-combobox-editor {
|
|||
border-bottom: 1px solid #c5c5c5 !important;
|
||||
}
|
||||
|
||||
.z-window-overlapped-hl, .z-window-popup-hl, .z-window-modal-hl, .z-window-highlighted-hl, .z-window-embedded-hl,
|
||||
.z-window-overlapped-hr, .z-window-popup-hr, .z-window-modal-hr, .z-window-highlighted-hr, .z-window-embedded-hr,
|
||||
.z-window-overlapped-hm, .z-window-popup-hm, .z-window-modal-hm, .z-window-highlighted-hm, .z-window-embedded-hm,
|
||||
.z-window-overlapped-cl, .z-window-popup-cl, .z-window-modal-cl, .z-window-highlighted-cl, .z-window-embedded-cl,
|
||||
.z-window-overlapped-cr, .z-window-popup-cr, .z-window-modal-cr, .z-window-highlighted-cr, .z-window-embedded-cr,
|
||||
.z-window-overlapped-tl, .z-window-popup-tl, .z-window-modal-tl, .z-window-highlighted-tl, .z-window-embedded-tl,
|
||||
.z-window-overlapped-tr, .z-window-popup-tr, .z-window-modal-tr, .z-window-highlighted-tr, .z-window-embedded-tr,
|
||||
.z-window-overlapped-bl, .z-window-popup-bl, .z-window-modal-bl, .z-window-highlighted-bl, .z-window-embedded-bl,
|
||||
.z-window-overlapped-br, .z-window-popup-br, .z-window-modal-br, .z-window-highlighted-br, .z-window-embedded-br
|
||||
{
|
||||
.z-window-header, .z-window-content {
|
||||
background-image: none !important;
|
||||
}
|
||||
|
||||
|
@ -1511,18 +1470,18 @@ i.grid-combobox-editor {
|
|||
}
|
||||
|
||||
<%-- Splitter button --%>
|
||||
.z-east-splt-btn,
|
||||
.z-west-splt-btn,
|
||||
.z-north-splt-btn,
|
||||
.z-south-splt-btn {
|
||||
.z-east-splitter-button,
|
||||
.z-west-splitter-button,
|
||||
.z-north-splitter-button,
|
||||
.z-south-splitter-button {
|
||||
filter: alpha(opacity=100); <%-- IE --%>
|
||||
opacity: 1.0; <%-- Moz + FF --%>
|
||||
}
|
||||
|
||||
.z-east-splt-btn-over,
|
||||
.z-west-splt-btn-over,
|
||||
.z-north-splt-btn-over,
|
||||
.z-south-splt-btn-over {
|
||||
.z-east-splitter-button-over,
|
||||
.z-west-splitter-button-over,
|
||||
.z-north-splitter-button-over,
|
||||
.z-south-splitter-button-over {
|
||||
-webkit-filter: brightness(50%);
|
||||
filter: brightness(50%);
|
||||
}
|
||||
|
@ -1590,21 +1549,23 @@ font-size: 0;
|
|||
border: 1px solid #ababab;
|
||||
}
|
||||
|
||||
.menu-search-toggle-box .z-toolbarbutton-over {
|
||||
.menu-search-toggle-box .z-toolbarbutton-hover {
|
||||
border: none;
|
||||
}
|
||||
|
||||
.menu-search-toggle-off {
|
||||
margin:0px;
|
||||
padding: 1px 4px 1px 4px;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
.menu-search-toggle-on {
|
||||
background: #999999;
|
||||
-webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset;
|
||||
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset;
|
||||
margin:0px;
|
||||
padding: 1px 4px 1px 4px;
|
||||
background: #999999 !important;
|
||||
-webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset !important;
|
||||
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset !important;
|
||||
margin:0px !important;
|
||||
padding: 1px 4px 1px 4px !important;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
.menu-search-toggle-on img, .menu-search-toggle-off img {
|
||||
|
@ -1612,16 +1573,13 @@ font-size: 0;
|
|||
width: 16px;
|
||||
}
|
||||
<%-- workaround for http://jira.idempiere.com/browse/IDEMPIERE-692 --%>
|
||||
.z-combobox-pp {
|
||||
.z-combobox-popup {
|
||||
max-height: 200px;
|
||||
}
|
||||
|
||||
<%-- dialog --%>
|
||||
.popup-dialog .z-window-overlapped-cnt, .popup-dialog .z-window-highlighted-cnt {
|
||||
.popup-dialog .z-window-overlapped .z-window-content, .popup-dialog .z-window-highlighted .z-window-content {
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
.popup-dialog .z-window-overlapped-bl, .popup-dialog .z-window-highlighted-bl {
|
||||
background-color: #f5f5f5;
|
||||
}
|
||||
|
||||
|
@ -1776,8 +1734,8 @@ table.z-vbox > tbody > tr > td > table {
|
|||
margin-top: 5px;
|
||||
}
|
||||
|
||||
.find-window-simple .img-btn, .find-window-simple .img-btn.btn-ok.z-button-os, .find-window-simple .img-btn.btn-cancel.z-button-os,
|
||||
.find-window-advanced .img-btn, .find-window-advanced .img-btn.btn-ok.z-button-os, .find-window-advanced .img-btn.btn-cancel.z-button-os {
|
||||
.find-window-simple .img-btn, .find-window-simple .img-btn.btn-ok.z-button, .find-window-simple .img-btn.btn-cancel.z-button,
|
||||
.find-window-advanced .img-btn, .find-window-advanced .img-btn.btn-ok.z-button, .find-window-advanced .img-btn.btn-cancel.z-button {
|
||||
margin: 0 2px;
|
||||
}
|
||||
|
||||
|
@ -1891,7 +1849,7 @@ table.z-vbox > tbody > tr > td > table {
|
|||
.payment-rule-editor .z-combobox {
|
||||
width: 100%;
|
||||
}
|
||||
.payment-rule-editor .z-combobox-inp {
|
||||
.payment-rule-editor .z-combobox-input {
|
||||
box-sizing: border-box;
|
||||
-moz-box-sizing: border-box; /* Firefox */
|
||||
display: inline-block;
|
||||
|
@ -1899,13 +1857,13 @@ table.z-vbox > tbody > tr > td > table {
|
|||
width: 100%;
|
||||
height: 21px;
|
||||
}
|
||||
.payment-rule-editor .z-combobox-inp:focus {
|
||||
.payment-rule-editor .z-combobox-input:focus {
|
||||
border: 1px solid #0000ff;
|
||||
}
|
||||
.payment-rule-editor .z-combobox-inp.editor-input-disd {
|
||||
.payment-rule-editor .z-combobox-input.editor-input-disd {
|
||||
padding-right: 22px !important;
|
||||
}
|
||||
.payment-rule-editor .z-combobox-btn {
|
||||
.payment-rule-editor .z-combobox-button {
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
display: inline-block;
|
||||
|
@ -1914,10 +1872,10 @@ table.z-vbox > tbody > tr > td > table {
|
|||
right: 22px;
|
||||
top: 1px;
|
||||
}
|
||||
.payment-rule-editor .z-combobox.no-button .z-combobox-btn {
|
||||
.payment-rule-editor .z-combobox.no-button .z-combobox-button {
|
||||
right: 1px;
|
||||
}
|
||||
.payment-rule-editor .z-combobox .z-combobox-btn-over {
|
||||
.payment-rule-editor .z-combobox .z-combobox-button-hover {
|
||||
background-color: #ddd;
|
||||
background-position: 0px 0px;
|
||||
}
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
</west>
|
||||
<center sclass="desktop-header-right">
|
||||
<vbox apply="org.adempiere.webui.panel.UserPanel" height="100%" align="right"
|
||||
style="position: absolute; text-align:right;" hflex="1" vflex="1"
|
||||
hflex="1" vflex="1"
|
||||
sclass="desktop-user-panel">
|
||||
<vbox>
|
||||
<label use="org.adempiere.webui.component.Label" id="loginUserAndRole"
|
||||
|
|
|
@ -98,7 +98,10 @@ Import-Package: bsh,
|
|||
org.codehaus.groovy.vmplugin.v4,
|
||||
org.codehaus.groovy.vmplugin.v5,
|
||||
org.osgi.framework;version="1.3.0",
|
||||
org.osgi.service.component;version="1.1.0"
|
||||
org.osgi.service.component;version="1.1.0",
|
||||
org.slf4j;version="1.6.1",
|
||||
org.slf4j.helpers;version="1.6.1",
|
||||
org.slf4j.spi;version="1.6.1"
|
||||
Bundle-ClassPath: .,
|
||||
lib/asm.jar,
|
||||
lib/cglib.jar,
|
||||
|
|
|
@ -16,26 +16,28 @@ Copyright (C) 2005 Potix Corporation. All Rights Reserved.
|
|||
*/
|
||||
package org.zkoss.util.resource;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.net.URL;
|
||||
import java.util.Collections;
|
||||
import java.util.Enumeration;
|
||||
import java.util.Iterator;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.Set;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.Collections;
|
||||
import java.util.Iterator;
|
||||
import java.io.InputStream;
|
||||
import java.io.IOException;
|
||||
import java.net.URL;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.zkoss.util.CollectionsX;
|
||||
import org.zkoss.zk.library.Activator;
|
||||
|
||||
import org.zkoss.idom.Document;
|
||||
import org.zkoss.idom.Element;
|
||||
import org.zkoss.idom.input.SAXBuilder;
|
||||
import org.zkoss.idom.util.IDOMs;
|
||||
import org.zkoss.util.CollectionsX;
|
||||
import org.zkoss.util.logging.Log;
|
||||
import org.zkoss.zk.library.Activator;
|
||||
import org.zkoss.idom.input.SAXBuilder;
|
||||
|
||||
/**
|
||||
* The locator searches the current thread's context class loader,
|
||||
|
@ -50,7 +52,7 @@ import org.zkoss.zk.library.Activator;
|
|||
* @author tomyeh
|
||||
*/
|
||||
public class ClassLocator implements XMLResourcesLocator {
|
||||
private static final Log log = Log.lookup(ClassLocator.class);
|
||||
private static final Logger log = LoggerFactory.getLogger(ClassLocator.class);
|
||||
|
||||
public ClassLocator() {
|
||||
}
|
||||
|
@ -94,14 +96,14 @@ public class ClassLocator implements XMLResourcesLocator {
|
|||
final XMLResource xr = new XMLResource(url, elName, elDepends);
|
||||
final XMLResource old = rcmap.put(xr.name, xr);
|
||||
if (old != null)
|
||||
log.warning("Replicate resource: "+xr.name
|
||||
log.warn("Replicate resource: "+xr.name
|
||||
+"\nOverwrite "+old.url+"\nwith "+xr.url);
|
||||
//it is possible if zcommon.jar is placed in both
|
||||
//WEB-INF/lib and shared/lib, i.e., appear twice in the class path
|
||||
//We overwrite because the order is the parent class loader first
|
||||
//so WEB-INF/lib is placed after
|
||||
}
|
||||
// if (rcmap.isEmpty() && log.debugable()) log.debug("No resouce is found for "+name);
|
||||
// if (rcmap.isEmpty() && log.isDebugEnabled()) log.debug("No resource is found for "+name);
|
||||
|
||||
final List<Resource> rcs = new LinkedList<Resource>(); //a list of Document
|
||||
final Set<String> resolving = new LinkedHashSet<String>();
|
||||
|
@ -123,13 +125,13 @@ public class ClassLocator implements XMLResourcesLocator {
|
|||
for (String nm: xr.depends) {
|
||||
final XMLResource dep = rcmap.remove(nm);
|
||||
if (dep != null) //not resolved yet
|
||||
resolveDependency(dep, rcs, rcmap, resolving); //recusrively
|
||||
resolveDependency(dep, rcs, rcmap, resolving); //recursively
|
||||
}
|
||||
|
||||
rcs.add(new Resource(xr.url, xr.document));
|
||||
resolving.remove(xr.name);
|
||||
|
||||
if (log.debugable()) log.debug("Adding resolved resource: "+xr.name);
|
||||
if (log.isDebugEnabled()) log.debug("Adding resolved resource: "+xr.name);
|
||||
}
|
||||
/** Info used with getDependentXMLResource. */
|
||||
private static class XMLResource {
|
||||
|
@ -140,7 +142,7 @@ public class ClassLocator implements XMLResourcesLocator {
|
|||
|
||||
private XMLResource(URL url, String elName, String elDepends)
|
||||
throws IOException{
|
||||
if (log.debugable()) log.debug("Loading "+url);
|
||||
if (log.isDebugEnabled()) log.debug("Loading "+url);
|
||||
try {
|
||||
this.document = new SAXBuilder(false, false, true).build(url);
|
||||
} catch (Exception ex) {
|
||||
|
@ -160,7 +162,7 @@ public class ClassLocator implements XMLResourcesLocator {
|
|||
} else {
|
||||
this.depends = new LinkedList<String>();
|
||||
CollectionsX.parse(this.depends, deps, ',');
|
||||
if (log.finerable()) log.finer(this.name+" depends on "+this.depends);
|
||||
if (log.isTraceEnabled()) log.trace(this.name+" depends on "+this.depends);
|
||||
}
|
||||
}
|
||||
public String toString() {
|
||||
|
|
|
@ -22,8 +22,9 @@ import java.net.URL;
|
|||
|
||||
import javax.servlet.ServletContext;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.zkoss.lang.SystemException;
|
||||
import org.zkoss.util.logging.Log;
|
||||
import org.zkoss.web.servlet.Servlets;
|
||||
|
||||
/**
|
||||
|
@ -44,7 +45,7 @@ import org.zkoss.web.servlet.Servlets;
|
|||
* @author tomyeh
|
||||
*/
|
||||
public class ResourceCaches {
|
||||
private static final Log log = Log.lookup(ResourceCaches.class);
|
||||
private static final Logger log = LoggerFactory.getLogger(ResourceCaches.class);
|
||||
|
||||
/** Loads, parses and returns the resource of the specified URI,
|
||||
* or null if not found. The parser is defined by the loader defined
|
||||
|
@ -61,7 +62,7 @@ public class ResourceCaches {
|
|||
V get(ResourceCache<V> cache, ServletContext ctx, String path, Object extra) {
|
||||
//20050905: Tom Yeh
|
||||
//We don't need to handle the default name if user specifies only a dir
|
||||
//because it is handled by the container directlys
|
||||
//because it is handled by the container directly
|
||||
//And, web developer has to specify <welcome-file> in web.xml
|
||||
URL url = null;
|
||||
if (path == null || path.length() == 0) path = "/";
|
||||
|
@ -93,7 +94,7 @@ public class ResourceCaches {
|
|||
Servlets.getExtendletContext(ctx, ctxpath.substring(1));
|
||||
if (extctx != null) {
|
||||
url = extctx.getResource(path);
|
||||
// if (log.debugable()) log.debug("Resolving "+path0+" to "+url);
|
||||
// if (log.isDebugEnabled()) log.debug("Resolving "+path0+" to "+url);
|
||||
if (url == null)
|
||||
return null;
|
||||
try {
|
||||
|
@ -102,14 +103,14 @@ public class ResourceCaches {
|
|||
final IOException ioex = getIOException(ex);
|
||||
if (ioex == null)
|
||||
throw SystemException.Aide.wrap(ex);
|
||||
log.warningBriefly("Unable to load "+url, ioex);
|
||||
log.warn("Unable to load "+url, ioex);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
ctx = ctx.getContext(ctxpath);
|
||||
if (ctx == null) { //failed
|
||||
// if (log.debugable()) log.debug("Context not found: "+ctxpath);
|
||||
// if (log.isDebugEnabled()) log.debug("Context not found: "+ctxpath);
|
||||
ctx = ctx0; path = path0;//restore
|
||||
}
|
||||
}
|
||||
|
@ -125,7 +126,7 @@ public class ResourceCaches {
|
|||
final IOException ioex = getIOException(ex);
|
||||
if (ioex == null)
|
||||
throw SystemException.Aide.wrap(ex);
|
||||
log.warningBriefly("Unable to load "+flnm, ioex);
|
||||
log.warn("Unable to load "+flnm, ioex);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
@ -142,7 +143,7 @@ public class ResourceCaches {
|
|||
final IOException ioex = getIOException(ex);
|
||||
if (ioex == null)
|
||||
throw SystemException.Aide.wrap(ex);
|
||||
log.warningBriefly("Unable to load "+path, ioex);
|
||||
log.warn("Unable to load "+path, ioex);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue