windy
8 years ago
87 changed files with 32452 additions and 32151 deletions
File diff suppressed because one or more lines are too long
@ -0,0 +1,32 @@ |
|||||||
|
Demo.Func = BI.inherit(BI.Widget, { |
||||||
|
props: { |
||||||
|
baseCls: "demo-func" |
||||||
|
}, |
||||||
|
render: function () { |
||||||
|
var svg = BI.createWidget({ |
||||||
|
type: "bi.svg", |
||||||
|
width: 500, |
||||||
|
height: 600 |
||||||
|
}); |
||||||
|
|
||||||
|
var circle = svg.circle(100, 100, 10); |
||||||
|
circle.animate({fill: "#223fa3", stroke: "#000", "stroke-width": 80, "stroke-opacity": 0.5}, 2000); |
||||||
|
|
||||||
|
var el = svg.rect(10, 200, 300, 200); |
||||||
|
el.transform("t100,100r45t-100,0"); |
||||||
|
|
||||||
|
svg.path("M10,10L50,50M50,10L10,50") |
||||||
|
.attr({stroke: "red"}); |
||||||
|
|
||||||
|
BI.createWidget({ |
||||||
|
type: "bi.absolute", |
||||||
|
element: this, |
||||||
|
items: [{ |
||||||
|
el: svg, |
||||||
|
left: 100, |
||||||
|
top: 50 |
||||||
|
}] |
||||||
|
}) |
||||||
|
} |
||||||
|
}); |
||||||
|
$.shortcut("demo.svg", Demo.Func); |
@ -0,0 +1,96 @@ |
|||||||
|
Demo.Func = BI.inherit(BI.Widget, { |
||||||
|
props: { |
||||||
|
baseCls: "demo-func" |
||||||
|
}, |
||||||
|
_createNav: function(v){ |
||||||
|
var m = this.MONTH, y = this.YEAR; |
||||||
|
m += v; |
||||||
|
while(m < 0){ |
||||||
|
y--; |
||||||
|
m += 12; |
||||||
|
} |
||||||
|
while(m > 11){ |
||||||
|
y++; |
||||||
|
m -= 12; |
||||||
|
} |
||||||
|
var calendar = BI.createWidget({ |
||||||
|
type: "bi.calendar", |
||||||
|
logic: { |
||||||
|
dynamic: false |
||||||
|
}, |
||||||
|
year: y, |
||||||
|
month: m, |
||||||
|
day: this.DAY |
||||||
|
}) |
||||||
|
calendar.setValue(this.selectedTime); |
||||||
|
return calendar; |
||||||
|
}, |
||||||
|
|
||||||
|
_stringfyTimeObject: function(timeOb){ |
||||||
|
return timeOb.year + "-" + (timeOb.month + 1) + "-" + timeOb.day; |
||||||
|
}, |
||||||
|
|
||||||
|
render: function () { |
||||||
|
var self = this; |
||||||
|
var combo1 = BI.createWidget({ |
||||||
|
type: "bi.bubble_combo", |
||||||
|
el: { |
||||||
|
type: "bi.button", |
||||||
|
text: "测试", |
||||||
|
height: 25 |
||||||
|
}, |
||||||
|
popup: { |
||||||
|
el: { |
||||||
|
type: "bi.button_group", |
||||||
|
items: BI.makeArray(100, { |
||||||
|
type: "bi.text_item", |
||||||
|
height: 25, |
||||||
|
text: "item" |
||||||
|
}), |
||||||
|
layouts: [{ |
||||||
|
type: "bi.vertical" |
||||||
|
}] |
||||||
|
}, |
||||||
|
maxHeight: 200 |
||||||
|
} |
||||||
|
}) |
||||||
|
var combo2 = BI.createWidget({ |
||||||
|
type: "bi.bubble_combo", |
||||||
|
el: { |
||||||
|
type: "bi.button", |
||||||
|
text: "测试", |
||||||
|
height: 25 |
||||||
|
}, |
||||||
|
popup: { |
||||||
|
type: "bi.bubble_bar_popup_view", |
||||||
|
el: { |
||||||
|
type: "bi.button_group", |
||||||
|
items: BI.makeArray(100, { |
||||||
|
type: "bi.text_item", |
||||||
|
height: 25, |
||||||
|
text: "item" |
||||||
|
}), |
||||||
|
layouts: [{ |
||||||
|
type: "bi.vertical" |
||||||
|
}] |
||||||
|
}, |
||||||
|
maxHeight: 200, |
||||||
|
minWidth: 600 |
||||||
|
} |
||||||
|
}) |
||||||
|
BI.createWidget({ |
||||||
|
type: "bi.absolute", |
||||||
|
element: this, |
||||||
|
items: [{ |
||||||
|
el: combo1, |
||||||
|
left: 100, |
||||||
|
top: 100 |
||||||
|
}, { |
||||||
|
el: combo2, |
||||||
|
left: 100, |
||||||
|
bottom: 100 |
||||||
|
}] |
||||||
|
}) |
||||||
|
} |
||||||
|
}); |
||||||
|
$.shortcut("demo.bubble_combo", Demo.Func); |
@ -0,0 +1,84 @@ |
|||||||
|
Demo.Func = BI.inherit(BI.Widget, { |
||||||
|
props: { |
||||||
|
baseCls: "demo-func" |
||||||
|
}, |
||||||
|
_createNav: function(v){ |
||||||
|
var m = this.MONTH, y = this.YEAR; |
||||||
|
m += v; |
||||||
|
while(m < 0){ |
||||||
|
y--; |
||||||
|
m += 12; |
||||||
|
} |
||||||
|
while(m > 11){ |
||||||
|
y++; |
||||||
|
m -= 12; |
||||||
|
} |
||||||
|
var calendar = BI.createWidget({ |
||||||
|
type: "bi.calendar", |
||||||
|
logic: { |
||||||
|
dynamic: false |
||||||
|
}, |
||||||
|
year: y, |
||||||
|
month: m, |
||||||
|
day: this.DAY |
||||||
|
}) |
||||||
|
calendar.setValue(this.selectedTime); |
||||||
|
return calendar; |
||||||
|
}, |
||||||
|
|
||||||
|
_stringfyTimeObject: function(timeOb){ |
||||||
|
return timeOb.year + "-" + (timeOb.month + 1) + "-" + timeOb.day; |
||||||
|
}, |
||||||
|
|
||||||
|
render: function () { |
||||||
|
var self = this, d = new Date(); |
||||||
|
this.YEAR = d.getFullYear(); |
||||||
|
this.MONTH = d.getMonth(); |
||||||
|
this.DAY = d.getDate(); |
||||||
|
|
||||||
|
this.selectedTime = { |
||||||
|
year: this.YEAR, |
||||||
|
month: this.MONTH, |
||||||
|
day: this.DAY |
||||||
|
}; |
||||||
|
|
||||||
|
var tip = BI.createWidget({ |
||||||
|
type: "bi.label" |
||||||
|
}); |
||||||
|
|
||||||
|
var nav = BI.createWidget({ |
||||||
|
type: "bi.navigation", |
||||||
|
element: this, |
||||||
|
tab: { |
||||||
|
height: 30, |
||||||
|
items: [{ |
||||||
|
once: false, |
||||||
|
text: "后退", |
||||||
|
value: -1, |
||||||
|
cls: "mvc-button layout-bg3" |
||||||
|
},tip, { |
||||||
|
once: false, |
||||||
|
text: "前进", |
||||||
|
value: 1, |
||||||
|
cls: "mvc-button layout-bg4" |
||||||
|
}] |
||||||
|
}, |
||||||
|
cardCreator: BI.bind(this._createNav, this), |
||||||
|
|
||||||
|
afterCardCreated: function(){ |
||||||
|
|
||||||
|
}, |
||||||
|
|
||||||
|
afterCardShow: function(){ |
||||||
|
this.setValue(self.selectedTime); |
||||||
|
} |
||||||
|
}) |
||||||
|
|
||||||
|
nav.on(BI.Navigation.EVENT_CHANGE, function(){ |
||||||
|
self.selectedTime = nav.getValue(); |
||||||
|
tip.setText(self._stringfyTimeObject(self.selectedTime)); |
||||||
|
}); |
||||||
|
tip.setText(this._stringfyTimeObject(this.selectedTime)); |
||||||
|
} |
||||||
|
}); |
||||||
|
$.shortcut("demo.calendar", Demo.Func); |
@ -0,0 +1,21 @@ |
|||||||
|
Demo.Func = BI.inherit(BI.Widget, { |
||||||
|
props: { |
||||||
|
baseCls: "demo-func" |
||||||
|
}, |
||||||
|
|
||||||
|
render: function () { |
||||||
|
return { |
||||||
|
type: "bi.absolute", |
||||||
|
items: [{ |
||||||
|
el: { |
||||||
|
type: "bi.color_chooser", |
||||||
|
width: 30, |
||||||
|
height: 30 |
||||||
|
}, |
||||||
|
left: 100, |
||||||
|
top: 250 |
||||||
|
}] |
||||||
|
} |
||||||
|
} |
||||||
|
}); |
||||||
|
$.shortcut("demo.color_chooser", Demo.Func); |
@ -0,0 +1,35 @@ |
|||||||
|
Demo.Func = BI.inherit(BI.Widget, { |
||||||
|
props: { |
||||||
|
baseCls: "demo-func" |
||||||
|
}, |
||||||
|
|
||||||
|
render: function () { |
||||||
|
var canvas = BI.createWidget({ |
||||||
|
type: "bi.complex_canvas", |
||||||
|
width: 500, |
||||||
|
height: 600 |
||||||
|
}); |
||||||
|
canvas.branch(55, 100, 10, 10, 100, 10, 200, 10, { |
||||||
|
offset: 20, |
||||||
|
strokeStyle: "red", |
||||||
|
lineWidth: 2 |
||||||
|
}); |
||||||
|
|
||||||
|
canvas.branch(220, 155, 120, 110, 150, 200, { |
||||||
|
offset: 40 |
||||||
|
}); |
||||||
|
|
||||||
|
canvas.stroke(); |
||||||
|
|
||||||
|
BI.createWidget({ |
||||||
|
type: "bi.absolute", |
||||||
|
element: this, |
||||||
|
items: [{ |
||||||
|
el: canvas, |
||||||
|
left: 100, |
||||||
|
top: 50 |
||||||
|
}] |
||||||
|
}) |
||||||
|
} |
||||||
|
}); |
||||||
|
$.shortcut("demo.complex_canvas", Demo.Func); |
@ -0,0 +1,42 @@ |
|||||||
|
Demo.Func = BI.inherit(BI.Widget, { |
||||||
|
props: { |
||||||
|
baseCls: "demo-func" |
||||||
|
}, |
||||||
|
|
||||||
|
render: function () { |
||||||
|
var editor = BI.createWidget({ |
||||||
|
type: "bi.text_editor", |
||||||
|
width: 200, |
||||||
|
height: 30, |
||||||
|
value: "这是复制的内容" |
||||||
|
}); |
||||||
|
var zclip = BI.createWidget({ |
||||||
|
type: 'bi.zero_clip', |
||||||
|
width: 100, |
||||||
|
height: 100, |
||||||
|
cls: 'layout-bg1', |
||||||
|
copy: function () { |
||||||
|
return editor.getValue(); |
||||||
|
}, |
||||||
|
|
||||||
|
afterCopy: function () { |
||||||
|
BI.Msg.toast(editor.getValue()); |
||||||
|
} |
||||||
|
}); |
||||||
|
|
||||||
|
BI.createWidget({ |
||||||
|
type: "bi.absolute", |
||||||
|
element: this, |
||||||
|
items: [{ |
||||||
|
el: editor, |
||||||
|
left: 100, |
||||||
|
top: 50, |
||||||
|
}, { |
||||||
|
el: zclip, |
||||||
|
left: 100, |
||||||
|
top: 100 |
||||||
|
}] |
||||||
|
}) |
||||||
|
} |
||||||
|
}); |
||||||
|
$.shortcut("demo.zclip", Demo.Func); |
@ -0,0 +1,184 @@ |
|||||||
|
Demo.CORE_CONFIG = [{ |
||||||
|
id: 1, |
||||||
|
text: "核心控件", |
||||||
|
}, { |
||||||
|
id: 101, |
||||||
|
pId: 1, |
||||||
|
text: "布局" |
||||||
|
}, { |
||||||
|
pId: 101, |
||||||
|
text: "bi.center_adapt", |
||||||
|
value: "demo.center_adapt" |
||||||
|
}, { |
||||||
|
pId: 101, |
||||||
|
text: "bi.vertical_adapt", |
||||||
|
value: "demo.vertical_adapt" |
||||||
|
}, { |
||||||
|
pId: 101, |
||||||
|
text: "bi.horizontal_adapt", |
||||||
|
value: "demo.horizontal_adapt" |
||||||
|
}, { |
||||||
|
pId: 101, |
||||||
|
text: "bi.horizontal_auto", |
||||||
|
value: "demo.horizontal_auto" |
||||||
|
}, { |
||||||
|
pId: 101, |
||||||
|
text: "bi.horizontal_float", |
||||||
|
value: "demo.horizontal_float" |
||||||
|
}, { |
||||||
|
pId: 101, |
||||||
|
text: "bi.left_right_vertical_adapt", |
||||||
|
value: "demo.left_right_vertical_adapt" |
||||||
|
}, { |
||||||
|
pId: 101, |
||||||
|
text: "bi.center", |
||||||
|
value: "demo.center_layout" |
||||||
|
}, { |
||||||
|
pId: 101, |
||||||
|
text: "bi.float_center", |
||||||
|
value: "demo.float_center" |
||||||
|
}, { |
||||||
|
pId: 101, |
||||||
|
text: "bi.vertical", |
||||||
|
value: "demo.vertical" |
||||||
|
}, { |
||||||
|
pId: 101, |
||||||
|
text: "bi.horizontal", |
||||||
|
value: "demo.horizontal" |
||||||
|
}, { |
||||||
|
pId: 101, |
||||||
|
text: "bi.border", |
||||||
|
value: "demo.border" |
||||||
|
}, { |
||||||
|
pId: 101, |
||||||
|
text: "bi.left, bi.right", |
||||||
|
value: "demo.flow" |
||||||
|
}, { |
||||||
|
pId: 101, |
||||||
|
text: "bi.inline", |
||||||
|
value: "demo.inline" |
||||||
|
}, { |
||||||
|
pId: 101, |
||||||
|
text: "bi.htape", |
||||||
|
value: "demo.htape" |
||||||
|
}, { |
||||||
|
pId: 101, |
||||||
|
text: "bi.vtape", |
||||||
|
value: "demo.vtape" |
||||||
|
}, { |
||||||
|
pId: 101, |
||||||
|
text: "bi.grid", |
||||||
|
value: "demo.grid" |
||||||
|
}, { |
||||||
|
pId: 101, |
||||||
|
text: "bi.table", |
||||||
|
value: "demo.table_layout" |
||||||
|
}, { |
||||||
|
pId: 101, |
||||||
|
text: "bi.td", |
||||||
|
value: "demo.td" |
||||||
|
}, { |
||||||
|
pId: 1, |
||||||
|
id: 102, |
||||||
|
text: "抽象控件" |
||||||
|
}, { |
||||||
|
pId: 102, |
||||||
|
text: "bi.button_group", |
||||||
|
value: "demo.button_group" |
||||||
|
}, { |
||||||
|
pId: 102, |
||||||
|
text: "bi.button_tree", |
||||||
|
value: "demo.button_tree" |
||||||
|
}, { |
||||||
|
pId: 102, |
||||||
|
text: "bi.button_map", |
||||||
|
value: "demo.button_map" |
||||||
|
}, { |
||||||
|
pId: 102, |
||||||
|
id: 10201, |
||||||
|
text: "组合控件" |
||||||
|
}, { |
||||||
|
pId: 10201, |
||||||
|
text: "bi.combo", |
||||||
|
value: "demo.combo" |
||||||
|
}, { |
||||||
|
pId: 10201, |
||||||
|
text: "bi.expander", |
||||||
|
value: "demo.expander" |
||||||
|
}, { |
||||||
|
pId: 10201, |
||||||
|
text: "bi.group_combo", |
||||||
|
value: "demo.group_combo" |
||||||
|
}, { |
||||||
|
pId: 10201, |
||||||
|
text: "bi.loader", |
||||||
|
value: "demo.loader" |
||||||
|
}, { |
||||||
|
pId: 10201, |
||||||
|
text: "bi.navigation", |
||||||
|
value: "demo.navigation" |
||||||
|
}, { |
||||||
|
pId: 10201, |
||||||
|
text: "bi.searcher", |
||||||
|
value: "demo.searcher" |
||||||
|
}, { |
||||||
|
pId: 10201, |
||||||
|
text: "bi.switcher", |
||||||
|
value: "demo.switcher" |
||||||
|
}, { |
||||||
|
pId: 10201, |
||||||
|
text: "bi.tab", |
||||||
|
value: "demo.tab" |
||||||
|
}, { |
||||||
|
pId: 102, |
||||||
|
id: 10202, |
||||||
|
text: "弹出层" |
||||||
|
}, { |
||||||
|
pId: 10202, |
||||||
|
text: "bi.layer_float_box", |
||||||
|
value: "demo.layer_float_box" |
||||||
|
}, { |
||||||
|
pId: 10202, |
||||||
|
text: "bi.layer_popup", |
||||||
|
value: "demo.layer_popup" |
||||||
|
}, { |
||||||
|
pId: 10202, |
||||||
|
text: "bi.layer_scroll", |
||||||
|
value: "demo.layer_scroll" |
||||||
|
}, { |
||||||
|
pId: 10202, |
||||||
|
text: "bi.layer_searcher", |
||||||
|
value: "demo.layer_searcher" |
||||||
|
}, { |
||||||
|
pId: 102, |
||||||
|
text: "bi.customtree", |
||||||
|
value: "demo.customtree" |
||||||
|
}, { |
||||||
|
pId: 102, |
||||||
|
text: "bi.grid_view", |
||||||
|
value: "demo.grid_view" |
||||||
|
}, { |
||||||
|
pId: 102, |
||||||
|
text: "bi.collection", |
||||||
|
value: "demo.collection" |
||||||
|
}, { |
||||||
|
pId: 1, |
||||||
|
text: "widget", |
||||||
|
value: "demo.widget" |
||||||
|
}, { |
||||||
|
pId: 1, |
||||||
|
text: "single", |
||||||
|
value: "demo.single" |
||||||
|
}, { |
||||||
|
pId: 1, |
||||||
|
text: "BasicButton", |
||||||
|
value: "demo.basic_button" |
||||||
|
}, { |
||||||
|
pId: 1, |
||||||
|
text: "NodeButton", |
||||||
|
value: "demo.node_button" |
||||||
|
}, { |
||||||
|
pId: 1, |
||||||
|
text: "pane", |
||||||
|
value: "demo.pane" |
||||||
|
}]; |
@ -1,76 +0,0 @@ |
|||||||
Demo.LAYOUT_CONFIG = [{ |
|
||||||
id: 1, |
|
||||||
text: "布局" |
|
||||||
}, { |
|
||||||
pId: 1, |
|
||||||
text: "bi.center_adapt", |
|
||||||
value: "demo.center_adapt" |
|
||||||
}, { |
|
||||||
pId: 1, |
|
||||||
text: "bi.vertical_adapt", |
|
||||||
value: "demo.vertical_adapt" |
|
||||||
}, { |
|
||||||
pId: 1, |
|
||||||
text: "bi.horizontal_adapt", |
|
||||||
value: "demo.horizontal_adapt" |
|
||||||
}, { |
|
||||||
pId: 1, |
|
||||||
text: "bi.horizontal_auto", |
|
||||||
value: "demo.horizontal_auto" |
|
||||||
}, { |
|
||||||
pId: 1, |
|
||||||
text: "bi.horizontal_float", |
|
||||||
value: "demo.horizontal_float" |
|
||||||
}, { |
|
||||||
pId: 1, |
|
||||||
text: "bi.left_right_vertical_adapt", |
|
||||||
value: "demo.left_right_vertical_adapt" |
|
||||||
}, { |
|
||||||
pId: 1, |
|
||||||
text: "bi.center", |
|
||||||
value: "demo.center_layout" |
|
||||||
}, { |
|
||||||
pId: 1, |
|
||||||
text: "bi.float_center", |
|
||||||
value: "demo.float_center" |
|
||||||
}, { |
|
||||||
pId: 1, |
|
||||||
text: "bi.vertical", |
|
||||||
value: "demo.vertical" |
|
||||||
}, { |
|
||||||
pId: 1, |
|
||||||
text: "bi.horizontal", |
|
||||||
value: "demo.horizontal" |
|
||||||
}, { |
|
||||||
pId: 1, |
|
||||||
text: "bi.border", |
|
||||||
value: "demo.border" |
|
||||||
}, { |
|
||||||
pId: 1, |
|
||||||
text: "bi.left, bi.right", |
|
||||||
value: "demo.flow" |
|
||||||
}, { |
|
||||||
pId: 1, |
|
||||||
text: "bi.inline", |
|
||||||
value: "demo.inline" |
|
||||||
}, { |
|
||||||
pId: 1, |
|
||||||
text: "bi.htape", |
|
||||||
value: "demo.htape" |
|
||||||
}, { |
|
||||||
pId: 1, |
|
||||||
text: "bi.vtape", |
|
||||||
value: "demo.vtape" |
|
||||||
}, { |
|
||||||
pId: 1, |
|
||||||
text: "bi.grid", |
|
||||||
value: "demo.grid" |
|
||||||
}, { |
|
||||||
pId: 1, |
|
||||||
text: "bi.table", |
|
||||||
value: "demo.table_layout" |
|
||||||
}, { |
|
||||||
pId: 1, |
|
||||||
text: "bi.td", |
|
||||||
value: "demo.td" |
|
||||||
}]; |
|
@ -0,0 +1,11 @@ |
|||||||
|
Demo.Func = BI.inherit(BI.Widget, { |
||||||
|
props: { |
||||||
|
baseCls: "demo-func" |
||||||
|
}, |
||||||
|
render: function () { |
||||||
|
return { |
||||||
|
type: "bi.layout", |
||||||
|
} |
||||||
|
} |
||||||
|
}); |
||||||
|
$.shortcut("demo.combo", Demo.Func); |
@ -0,0 +1,24 @@ |
|||||||
|
Demo.Func = BI.inherit(BI.Widget, { |
||||||
|
props: { |
||||||
|
baseCls: "demo-func" |
||||||
|
}, |
||||||
|
render: function () { |
||||||
|
return { |
||||||
|
type: "bi.button_group", |
||||||
|
chooseType: BI.ButtonGroup.CHOOSE_TYPE_NONE, |
||||||
|
layouts: [{ |
||||||
|
type: "bi.vertical" |
||||||
|
}, { |
||||||
|
type: "bi.center_adapt", |
||||||
|
}], |
||||||
|
items: [{ |
||||||
|
type: "bi.label", |
||||||
|
text: "button_group是一类具有相同属性或相似属性的抽象, 本案例实现的是布局的嵌套(vertical布局下内嵌center_adapt布局)" |
||||||
|
}, { |
||||||
|
type: "bi.button", |
||||||
|
text: "1" |
||||||
|
}] |
||||||
|
} |
||||||
|
} |
||||||
|
}); |
||||||
|
$.shortcut("demo.button_group", Demo.Func); |
@ -0,0 +1,26 @@ |
|||||||
|
Demo.Func = BI.inherit(BI.Widget, { |
||||||
|
props: { |
||||||
|
baseCls: "demo-func" |
||||||
|
}, |
||||||
|
render: function () { |
||||||
|
return { |
||||||
|
type: "bi.button_map", |
||||||
|
chooseType: BI.ButtonGroup.CHOOSE_TYPE_MULTI, |
||||||
|
layouts: [{ |
||||||
|
type: "bi.vertical" |
||||||
|
}, { |
||||||
|
type: "bi.center_adapt", |
||||||
|
}], |
||||||
|
items: [{ |
||||||
|
type: "bi.label", |
||||||
|
text: "0", |
||||||
|
value: 0 |
||||||
|
}, { |
||||||
|
type: "bi.button", |
||||||
|
text: "1", |
||||||
|
value: 1 |
||||||
|
}] |
||||||
|
} |
||||||
|
} |
||||||
|
}); |
||||||
|
$.shortcut("demo.button_map", Demo.Func); |
@ -0,0 +1,26 @@ |
|||||||
|
Demo.Func = BI.inherit(BI.Widget, { |
||||||
|
props: { |
||||||
|
baseCls: "demo-func" |
||||||
|
}, |
||||||
|
render: function () { |
||||||
|
return { |
||||||
|
type: "bi.button_tree", |
||||||
|
chooseType: BI.ButtonGroup.CHOOSE_TYPE_MULTI, |
||||||
|
layouts: [{ |
||||||
|
type: "bi.vertical" |
||||||
|
}, { |
||||||
|
type: "bi.center_adapt", |
||||||
|
}], |
||||||
|
items: [{ |
||||||
|
type: "bi.label", |
||||||
|
text: "0", |
||||||
|
value: 0 |
||||||
|
}, { |
||||||
|
type: "bi.button", |
||||||
|
text: "1", |
||||||
|
value: 1 |
||||||
|
}] |
||||||
|
} |
||||||
|
} |
||||||
|
}); |
||||||
|
$.shortcut("demo.button_tree", Demo.Func); |
@ -1,3 +1,7 @@ |
|||||||
Demo = { |
Demo = { |
||||||
version: 1.0 |
version: 1.0 |
||||||
|
}; |
||||||
|
|
||||||
|
BI.i18n = { |
||||||
|
"BI-Basic_OK": "确定" |
||||||
}; |
}; |
@ -1,192 +0,0 @@ |
|||||||
/** |
|
||||||
* Created by Young's on 2016/8/17. |
|
||||||
* 加载面板,一般只用于 requestAsync 中 |
|
||||||
*/ |
|
||||||
BI.RequstLoading = BI.inherit(BI.Widget, { |
|
||||||
_defaultConfig: function () { |
|
||||||
return BI.extend(BI.RequstLoading.superclass._defaultConfig.apply(this, arguments), {}); |
|
||||||
}, |
|
||||||
|
|
||||||
_init: function () { |
|
||||||
BI.RequstLoading.superclass._init.apply(this, arguments); |
|
||||||
var self = this, o = this.options; |
|
||||||
var mask = BI.Maskers.create(BI.RequstLoading.MASK_ID); |
|
||||||
this.callback = o.callback; |
|
||||||
this.paneTab = BI.createWidget({ |
|
||||||
type: "bi.tab", |
|
||||||
cardCreator: BI.bind(this._cardCreator, this), |
|
||||||
defaultShowIndex: BI.RequstLoading.ERROR, |
|
||||||
width: 400, |
|
||||||
height: 300 |
|
||||||
}); |
|
||||||
var tempIcon = BI.createWidget({ |
|
||||||
type: "bi.icon_button", |
|
||||||
cls: "data-link-test-fail-icon", |
|
||||||
width: 0, |
|
||||||
height: 0 |
|
||||||
}); |
|
||||||
BI.createWidget({ |
|
||||||
type: "bi.absolute", |
|
||||||
element: $('body'), |
|
||||||
items: [{ |
|
||||||
el: tempIcon, |
|
||||||
bottom: 0 |
|
||||||
}] |
|
||||||
}); |
|
||||||
|
|
||||||
BI.createWidget({ |
|
||||||
type: "bi.absolute", |
|
||||||
element: mask, |
|
||||||
cls: "bi-request-loading", |
|
||||||
items: [{ |
|
||||||
el: { |
|
||||||
type: "bi.layout", |
|
||||||
cls: "mask-pane" |
|
||||||
}, |
|
||||||
top: 0, |
|
||||||
left: 0, |
|
||||||
bottom: 0, |
|
||||||
right: 0 |
|
||||||
}, { |
|
||||||
el: { |
|
||||||
type: "bi.center_adapt", |
|
||||||
items: [this.paneTab] |
|
||||||
}, |
|
||||||
top: 0, |
|
||||||
left: 0, |
|
||||||
right: 0, |
|
||||||
bottom: 0 |
|
||||||
}] |
|
||||||
}); |
|
||||||
}, |
|
||||||
|
|
||||||
_cardCreator: function (v) { |
|
||||||
var self = this; |
|
||||||
var cancel = BI.createWidget({ |
|
||||||
type: "bi.button", |
|
||||||
text: BI.i18nText("BI-Basic_Cancel"), |
|
||||||
title: BI.i18nText("BI-Basic_Cancel"), |
|
||||||
level: "ignore", |
|
||||||
height: 28, |
|
||||||
width: 90, |
|
||||||
handler: function () { |
|
||||||
BI.Maskers.hide(BI.RequstLoading.MASK_ID); |
|
||||||
} |
|
||||||
}); |
|
||||||
var retry = BI.createWidget({ |
|
||||||
type: "bi.button", |
|
||||||
text: BI.i18nText("BI-Basic_Retry"), |
|
||||||
title: BI.i18nText("BI-Basic_Retry"), |
|
||||||
level: "common", |
|
||||||
height: 28, |
|
||||||
width: 90, |
|
||||||
handler: function () { |
|
||||||
self.paneTab.setSelect(BI.RequstLoading.LOADING); |
|
||||||
self.callback(); |
|
||||||
} |
|
||||||
}); |
|
||||||
switch (v) { |
|
||||||
case BI.RequstLoading.LOADING: |
|
||||||
return BI.createWidget({ |
|
||||||
type: "bi.vertical", |
|
||||||
items: [{ |
|
||||||
type: "bi.center_adapt", |
|
||||||
cls: "loading-bar-icon", |
|
||||||
items: [{ |
|
||||||
type: "bi.icon", |
|
||||||
width: 208, |
|
||||||
height: 15 |
|
||||||
}] |
|
||||||
}, { |
|
||||||
type: "bi.label", |
|
||||||
cls: "loading-comment", |
|
||||||
text: BI.i18nText("BI-Basic_Loading"), |
|
||||||
height: 30 |
|
||||||
}], |
|
||||||
width: 208, |
|
||||||
height: 200, |
|
||||||
vgap: 10 |
|
||||||
}); |
|
||||||
case BI.RequstLoading.LOADING_TIMEOUT: |
|
||||||
return BI.createWidget({ |
|
||||||
type: "bi.vertical", |
|
||||||
items: [{ |
|
||||||
type: "bi.center_adapt", |
|
||||||
cls: "loading-bar-icon", |
|
||||||
items: [{ |
|
||||||
type: "bi.icon", |
|
||||||
width: 208, |
|
||||||
height: 15 |
|
||||||
}] |
|
||||||
}, { |
|
||||||
type: "bi.label", |
|
||||||
cls: "loading-comment", |
|
||||||
text: BI.i18nText("BI-Basic_Loading"), |
|
||||||
height: 30 |
|
||||||
}, { |
|
||||||
type: "bi.label", |
|
||||||
text: BI.i18nText("BI-Request_Time_Out_Toast_Tip"), |
|
||||||
cls: "load-timeout-warning" |
|
||||||
}, { |
|
||||||
type: "bi.left_right_vertical_adapt", |
|
||||||
items: { |
|
||||||
left: [cancel], |
|
||||||
right: [retry] |
|
||||||
}, |
|
||||||
height: 30, |
|
||||||
llgap: 100, |
|
||||||
rrgap: 100 |
|
||||||
}], |
|
||||||
vgap: 10 |
|
||||||
}); |
|
||||||
case BI.RequstLoading.ERROR: |
|
||||||
return BI.createWidget({ |
|
||||||
type: "bi.vertical", |
|
||||||
items: [{ |
|
||||||
type: "bi.center_adapt", |
|
||||||
cls: "data-link-test-fail-icon", |
|
||||||
items: [{ |
|
||||||
type: "bi.icon", |
|
||||||
width: 126, |
|
||||||
height: 126 |
|
||||||
}] |
|
||||||
}, { |
|
||||||
type: "bi.label", |
|
||||||
text: BI.i18nText("BI-Connection_Lost"), |
|
||||||
cls: "load-fail-comment" |
|
||||||
}, { |
|
||||||
type: "bi.left_right_vertical_adapt", |
|
||||||
items: { |
|
||||||
left: [cancel], |
|
||||||
right: [retry] |
|
||||||
}, |
|
||||||
height: 30, |
|
||||||
llgap: 100, |
|
||||||
rrgap: 100 |
|
||||||
}], |
|
||||||
vgap: 20 |
|
||||||
}); |
|
||||||
} |
|
||||||
}, |
|
||||||
|
|
||||||
showLoading: function () { |
|
||||||
BI.Maskers.show(BI.RequstLoading.MASK_ID); |
|
||||||
this.paneTab.setSelect(BI.RequstLoading.LOADING); |
|
||||||
}, |
|
||||||
|
|
||||||
showError: function () { |
|
||||||
BI.Maskers.show(BI.RequstLoading.MASK_ID); |
|
||||||
this.paneTab.setSelect(BI.RequstLoading.ERROR); |
|
||||||
}, |
|
||||||
|
|
||||||
setCallback: function (callback) { |
|
||||||
this.callback = callback; |
|
||||||
} |
|
||||||
}); |
|
||||||
BI.extend(BI.RequstLoading, { |
|
||||||
MASK_ID: "___request__loading___", |
|
||||||
LOADING: 1, |
|
||||||
LOADING_TIMEOUT: 2, |
|
||||||
ERROR: 3 |
|
||||||
}); |
|
||||||
$.shortcut("bi.request_loading", BI.RequstLoading); |
|
@ -1,117 +0,0 @@ |
|||||||
/** |
|
||||||
* 组件请求数据超时提示 |
|
||||||
* Created by Young's on 2017/2/4. |
|
||||||
*/ |
|
||||||
BI.TimeoutToast = BI.inherit(BI.Tip, { |
|
||||||
_defaultConfig: function () { |
|
||||||
return BI.extend(BI.TimeoutToast.superclass._defaultConfig.apply(this, arguments), { |
|
||||||
baseCls: "bi-timeout-toast" |
|
||||||
}); |
|
||||||
}, |
|
||||||
|
|
||||||
_init: function () { |
|
||||||
BI.TimeoutToast.superclass._init.apply(this, arguments); |
|
||||||
var self = this; |
|
||||||
this.requests = []; |
|
||||||
this.toast = BI.createWidget({ |
|
||||||
type: "bi.vertical_adapt", |
|
||||||
element: this, |
|
||||||
items: [{ |
|
||||||
type: "bi.label", |
|
||||||
text: BI.i18nText("BI-Request_Time_Out_Toast_Tip") |
|
||||||
}, { |
|
||||||
type: "bi.text_button", |
|
||||||
cls: "cancel-button", |
|
||||||
width: 60, |
|
||||||
height: 22, |
|
||||||
text: BI.i18nText("BI-Basic_Cancel"), |
|
||||||
title: BI.i18nText("BI-Basic_Cancel"), |
|
||||||
handler: function () { |
|
||||||
self.cancelAllRequests(); |
|
||||||
} |
|
||||||
}, { |
|
||||||
type: "bi.text_button", |
|
||||||
cls: "retry-button", |
|
||||||
width: 60, |
|
||||||
height: 22, |
|
||||||
text: BI.i18nText("BI-Basic_Retry"), |
|
||||||
title: BI.i18nText("BI-Basic_Retry"), |
|
||||||
handler: function () { |
|
||||||
self.toast.element.slideUp(500); |
|
||||||
self._retryAll(); |
|
||||||
} |
|
||||||
}, { |
|
||||||
type: "bi.icon_button", |
|
||||||
cls: "close-font", |
|
||||||
width: 20, |
|
||||||
height: 20, |
|
||||||
title: BI.i18nText("BI-Basic_Close"), |
|
||||||
handler: function () { |
|
||||||
self.toast.element.slideUp(500); |
|
||||||
} |
|
||||||
}], |
|
||||||
width: 520, |
|
||||||
height: 30, |
|
||||||
hgap: 2 |
|
||||||
}); |
|
||||||
|
|
||||||
BI.createWidget({ |
|
||||||
type: "bi.absolute", |
|
||||||
element: $("body"), |
|
||||||
items: [{ |
|
||||||
el: this.toast, |
|
||||||
left: "50%", |
|
||||||
top: 0 |
|
||||||
}] |
|
||||||
}); |
|
||||||
this.toast.element.css({"margin-left": -1 * this.toast.element.outerWidth() / 2}); |
|
||||||
this.toast.setVisible(false); |
|
||||||
}, |
|
||||||
|
|
||||||
_retryAll: function () { |
|
||||||
var self = this; |
|
||||||
var clonedRequests = BI.deepClone(this.requests); |
|
||||||
this.requests = []; |
|
||||||
BI.each(clonedRequests, function (i, options) { |
|
||||||
BI.isFunction(self.callback) && self.callback(options); |
|
||||||
}); |
|
||||||
}, |
|
||||||
|
|
||||||
cancelAllRequests: function () { |
|
||||||
this.toast.element.slideUp(500); |
|
||||||
BI.each(this.requests, function (i, reqArgs) { |
|
||||||
if (BI.isNotNull(reqArgs) && BI.isFunction(reqArgs.complete)) { |
|
||||||
reqArgs.complete(); |
|
||||||
} |
|
||||||
}); |
|
||||||
this.requests = []; |
|
||||||
}, |
|
||||||
|
|
||||||
setCallback: function (callback) { |
|
||||||
this.callback = callback; |
|
||||||
}, |
|
||||||
|
|
||||||
addReq: function (options) { |
|
||||||
var self = this; |
|
||||||
if (this.requests.length === 0) { |
|
||||||
setTimeout(function () { |
|
||||||
if (self.requests.contains(options)) { |
|
||||||
self.toast.element.slideDown(500); |
|
||||||
} |
|
||||||
}, 5 * 60 * 1000); //5 min
|
|
||||||
} |
|
||||||
this.requests.push(options); |
|
||||||
}, |
|
||||||
|
|
||||||
removeReq: function (options) { |
|
||||||
BI.remove(this.requests, options); |
|
||||||
if (this.requests.length === 0) { |
|
||||||
this.toast.element.slideUp(500); |
|
||||||
} |
|
||||||
}, |
|
||||||
|
|
||||||
hasReq: function (options) { |
|
||||||
return this.requests.contains(options); |
|
||||||
} |
|
||||||
}); |
|
||||||
$.shortcut("bi.timeout_toast", BI.TimeoutToast); |
|
@ -1,44 +0,0 @@ |
|||||||
/** |
|
||||||
* Created by GUY on 2017/2/8. |
|
||||||
* |
|
||||||
* @class BI.BubblePopupBarView |
|
||||||
* @extends BI.BubblePopupView |
|
||||||
*/ |
|
||||||
BI.BubblePopupBarView = BI.inherit(BI.BubblePopupView, { |
|
||||||
_defaultConfig: function () { |
|
||||||
return BI.extend(BI.BubblePopupBarView.superclass._defaultConfig.apply(this, arguments), { |
|
||||||
extraCls: "bi-bubble-bar-popup-view", |
|
||||||
buttons: [{value: BI.i18nText(BI.i18nText("BI-Basic_Sure"))}, {value: BI.i18nText("BI-Basic_Cancel"), level: "ignore"}] |
|
||||||
}) |
|
||||||
}, |
|
||||||
_init: function () { |
|
||||||
BI.BubblePopupBarView.superclass._init.apply(this, arguments); |
|
||||||
}, |
|
||||||
_createToolBar: function () { |
|
||||||
var o = this.options, self = this; |
|
||||||
|
|
||||||
var items = []; |
|
||||||
BI.each(o.buttons.reverse(), function (i, buttonOpt) { |
|
||||||
if(BI.isWidget(buttonOpt)){ |
|
||||||
items.push(buttonOpt); |
|
||||||
}else{ |
|
||||||
items.push(BI.extend({ |
|
||||||
type: 'bi.button', |
|
||||||
height: 30, |
|
||||||
handler: function (v) { |
|
||||||
self.fireEvent(BI.BubblePopupBarView.EVENT_CLICK_TOOLBAR_BUTTON, v); |
|
||||||
} |
|
||||||
}, buttonOpt)) |
|
||||||
} |
|
||||||
}); |
|
||||||
return BI.createWidget({ |
|
||||||
type: 'bi.right_vertical_adapt', |
|
||||||
height: 40, |
|
||||||
hgap: 10, |
|
||||||
bgap: 10, |
|
||||||
items: items |
|
||||||
}); |
|
||||||
} |
|
||||||
}); |
|
||||||
BI.BubblePopupBarView.EVENT_CLICK_TOOLBAR_BUTTON = "EVENT_CLICK_TOOLBAR_BUTTON"; |
|
||||||
$.shortcut("bi.bubble_bar_popup_view", BI.BubblePopupBarView); |
|
@ -1,242 +0,0 @@ |
|||||||
/** |
|
||||||
* Created by Young's on 2016/8/30. |
|
||||||
*/ |
|
||||||
BI.LoginTimeOut = BI.inherit(BI.BarPopoverSection, { |
|
||||||
_defaultConfig: function () { |
|
||||||
return BI.extend(BI.LoginTimeOut.superclass._defaultConfig.apply(this, arguments), {}) |
|
||||||
}, |
|
||||||
|
|
||||||
_init: function () { |
|
||||||
BI.LoginTimeOut.superclass._init.apply(this, arguments); |
|
||||||
}, |
|
||||||
|
|
||||||
rebuildNorth: function (north) { |
|
||||||
BI.createWidget({ |
|
||||||
type: "bi.label", |
|
||||||
element: north, |
|
||||||
text: BI.i18nText("BI-Login_Timeout"), |
|
||||||
height: 50, |
|
||||||
textAlign: "left" |
|
||||||
}) |
|
||||||
}, |
|
||||||
|
|
||||||
rebuildCenter: function (center) { |
|
||||||
var self = this, o = this.options; |
|
||||||
var userNameInput = BI.createWidget({ |
|
||||||
type: "bi.editor", |
|
||||||
watermark: BI.i18nText("BI-Username"), |
|
||||||
cls: "login-input", |
|
||||||
allowBlank: true, |
|
||||||
width: 300, |
|
||||||
height: 30 |
|
||||||
}); |
|
||||||
var userNameMask = BI.createWidget({ |
|
||||||
type: "bi.text_button", |
|
||||||
width: 330, |
|
||||||
height: 56, |
|
||||||
cls: "error-mask" |
|
||||||
}); |
|
||||||
userNameMask.setVisible(false); |
|
||||||
userNameMask.on(BI.TextButton.EVENT_CHANGE, function () { |
|
||||||
userNameInput.focus(); |
|
||||||
this.element.fadeOut(); |
|
||||||
}); |
|
||||||
|
|
||||||
var userNameWrapper = BI.createWidget({ |
|
||||||
type: "bi.absolute", |
|
||||||
cls: "input-wrapper login-username-icon", |
|
||||||
items: [{ |
|
||||||
el: { |
|
||||||
type: "bi.icon", |
|
||||||
width: 26, |
|
||||||
height: 26 |
|
||||||
}, |
|
||||||
top: 10, |
|
||||||
left: 0 |
|
||||||
}, { |
|
||||||
el: userNameInput, |
|
||||||
top: 8, |
|
||||||
left: 30 |
|
||||||
}, { |
|
||||||
el: userNameMask, |
|
||||||
top: 0, |
|
||||||
left: 0 |
|
||||||
}], |
|
||||||
width: 330, |
|
||||||
height: 56 |
|
||||||
}); |
|
||||||
|
|
||||||
|
|
||||||
var passwordInput = BI.createWidget({ |
|
||||||
type: "bi.editor", |
|
||||||
inputType: "password", |
|
||||||
cls: "login-input", |
|
||||||
allowBlank: true, |
|
||||||
watermark: BI.i18nText("BI-Basic_Password"), |
|
||||||
width: 300, |
|
||||||
height: 30 |
|
||||||
}); |
|
||||||
var passwordMask = BI.createWidget({ |
|
||||||
type: "bi.text_button", |
|
||||||
width: 330, |
|
||||||
height: 56, |
|
||||||
cls: "error-mask" |
|
||||||
}); |
|
||||||
passwordMask.setVisible(false); |
|
||||||
passwordMask.on(BI.TextButton.EVENT_CHANGE, function () { |
|
||||||
passwordInput.focus(); |
|
||||||
this.element.fadeOut(); |
|
||||||
}); |
|
||||||
|
|
||||||
var passwordWrapper = BI.createWidget({ |
|
||||||
type: "bi.absolute", |
|
||||||
cls: "input-wrapper login-password-icon", |
|
||||||
items: [{ |
|
||||||
el: { |
|
||||||
type: "bi.icon", |
|
||||||
width: 26, |
|
||||||
height: 26 |
|
||||||
}, |
|
||||||
top: 10, |
|
||||||
left: 0 |
|
||||||
}, { |
|
||||||
el: passwordInput, |
|
||||||
top: 8, |
|
||||||
left: 30 |
|
||||||
}, { |
|
||||||
el: passwordMask, |
|
||||||
top: 0, |
|
||||||
left: 0 |
|
||||||
}], |
|
||||||
width: 330, |
|
||||||
height: 56 |
|
||||||
}); |
|
||||||
|
|
||||||
var loginButton = BI.createWidget({ |
|
||||||
type: "bi.text_button", |
|
||||||
text: BI.i18nText("BI-Basic_Login"), |
|
||||||
cls: "login-button", |
|
||||||
width: 330, |
|
||||||
height: 50 |
|
||||||
}); |
|
||||||
loginButton.on(BI.TextButton.EVENT_CHANGE, function () { |
|
||||||
if (BI.isEmptyString(userNameInput.getValue())) { |
|
||||||
self._showMes(userNameMask, BI.i18nText("BI-Username_Not_Null")); |
|
||||||
return; |
|
||||||
} |
|
||||||
if (BI.isEmptyString(passwordInput.getValue())) { |
|
||||||
self._showMes(passwordMask, BI.i18nText("BI-Password_Not_Null")); |
|
||||||
return; |
|
||||||
} |
|
||||||
|
|
||||||
//反正是登录直接用FR的登录了
|
|
||||||
BI.ajax({ |
|
||||||
url: BI.servletURL + '?op=fs_load&cmd=login', |
|
||||||
data: BI.cjkEncodeDO({ |
|
||||||
fr_username: encodeURIComponent(userNameInput.getValue()), |
|
||||||
fr_password: encodeURIComponent(passwordInput.getValue()), |
|
||||||
fr_remember: self.keepLoginState.isSelected() |
|
||||||
}), |
|
||||||
type: 'POST', |
|
||||||
async: false, |
|
||||||
error: function () { |
|
||||||
BI.Msg.toast("Error!"); |
|
||||||
}, |
|
||||||
complete: function (res, status) { |
|
||||||
if (BI.isEmptyString(res.responseText)) { |
|
||||||
self._showMes(userNameMask, BI.i18nText("BI-Authentication_Failed")); |
|
||||||
return; |
|
||||||
} |
|
||||||
var signResult = BI.jsonDecode(res.responseText); |
|
||||||
if (signResult.fail) { |
|
||||||
//用户名和密码不匹配
|
|
||||||
self._showMes(userNameMask, BI.i18nText("BI-Username_Password_Not_Correct")); |
|
||||||
} else if (signResult.url) { |
|
||||||
self.fireEvent(BI.LoginTimeOut.EVENT_LOGIN); |
|
||||||
} |
|
||||||
} |
|
||||||
}); |
|
||||||
}); |
|
||||||
|
|
||||||
var logo; |
|
||||||
if (BI.isNotNull(window.top.FS)) { |
|
||||||
logo = window.top.FS.config.logoImageID4FS; |
|
||||||
} |
|
||||||
BI.createWidget({ |
|
||||||
type: "bi.absolute", |
|
||||||
element: center, |
|
||||||
cls: "bi-login-timeout-center", |
|
||||||
items: [{ |
|
||||||
el: { |
|
||||||
type: "bi.center_adapt", |
|
||||||
items: [{ |
|
||||||
type: "bi.img", |
|
||||||
src: BI.servletURL + (logo ? |
|
||||||
'?op=fr_attach&cmd=ah_image&id=' + logo + '&isAdjust=false' : |
|
||||||
'?op=resource&resource=/com/fr/bi/web/images/login/bi_logo.png'), |
|
||||||
width: 120, |
|
||||||
height: 120 |
|
||||||
}], |
|
||||||
width: 200, |
|
||||||
height: 300 |
|
||||||
}, |
|
||||||
left: 0, |
|
||||||
top: 0 |
|
||||||
}, { |
|
||||||
el: userNameWrapper, |
|
||||||
top: 30, |
|
||||||
left: 230 |
|
||||||
}, { |
|
||||||
el: passwordWrapper, |
|
||||||
top: 100, |
|
||||||
left: 230 |
|
||||||
}, { |
|
||||||
el: loginButton, |
|
||||||
top: 200, |
|
||||||
left: 230 |
|
||||||
}] |
|
||||||
}); |
|
||||||
}, |
|
||||||
|
|
||||||
_showMes: function (widget, mes) { |
|
||||||
widget.setText(mes); |
|
||||||
widget.element.fadeIn(); |
|
||||||
setTimeout(function () { |
|
||||||
if (widget.element.isVisible()) { |
|
||||||
widget.element.fadeOut(); |
|
||||||
} |
|
||||||
}, 5000); |
|
||||||
}, |
|
||||||
|
|
||||||
rebuildSouth: function (south) { |
|
||||||
this.keepLoginState = BI.createWidget({ |
|
||||||
type: "bi.checkbox", |
|
||||||
width: 16, |
|
||||||
height: 16 |
|
||||||
}); |
|
||||||
BI.createWidget({ |
|
||||||
type: "bi.absolute", |
|
||||||
element: south, |
|
||||||
cls: "bi-login-timeout-south", |
|
||||||
items: [{ |
|
||||||
el: this.keepLoginState, |
|
||||||
top: 0, |
|
||||||
left: 230 |
|
||||||
}, { |
|
||||||
el: { |
|
||||||
type: "bi.label", |
|
||||||
text: BI.i18nText("BI-Keep_Login_State"), |
|
||||||
cls: "keep-state", |
|
||||||
height: 30 |
|
||||||
}, |
|
||||||
top: -7, |
|
||||||
left: 260 |
|
||||||
}] |
|
||||||
}) |
|
||||||
} |
|
||||||
}); |
|
||||||
BI.extend(BI.LoginTimeOut, { |
|
||||||
POPOVER_ID: "___popover__id___" |
|
||||||
}); |
|
||||||
BI.LoginTimeOut.EVENT_LOGIN = "EVENT_LOGIN"; |
|
||||||
$.shortcut("bi.login_timeout", BI.LoginTimeOut); |
|
@ -0,0 +1,495 @@ |
|||||||
|
/* |
||||||
|
* zClip :: jQuery ZeroClipboard v1.1.1 |
||||||
|
* http://steamdev.com/zclip
|
||||||
|
* |
||||||
|
* Copyright 2011, SteamDev |
||||||
|
* Released under the MIT license. |
||||||
|
* http://www.opensource.org/licenses/mit-license.php
|
||||||
|
* |
||||||
|
* Date: Wed Jun 01, 2011 |
||||||
|
*/ |
||||||
|
|
||||||
|
|
||||||
|
(function ($) { |
||||||
|
|
||||||
|
$.fn.zclip = function (params) { |
||||||
|
|
||||||
|
if (typeof params == "object" && !params.length) { |
||||||
|
|
||||||
|
var settings = $.extend({ |
||||||
|
|
||||||
|
path: 'ZeroClipboard.swf', |
||||||
|
copy: null, |
||||||
|
beforeCopy: null, |
||||||
|
afterCopy: null, |
||||||
|
clickAfter: true, |
||||||
|
setHandCursor: true, |
||||||
|
setCSSEffects: true |
||||||
|
|
||||||
|
}, params); |
||||||
|
|
||||||
|
|
||||||
|
return this.each(function () { |
||||||
|
|
||||||
|
var o = $(this); |
||||||
|
|
||||||
|
if (o.is(':visible') && (typeof settings.copy == 'string' || $.isFunction(settings.copy))) { |
||||||
|
|
||||||
|
ZeroClipboard.setMoviePath(settings.path); |
||||||
|
var clip = new ZeroClipboard.Client(); |
||||||
|
|
||||||
|
if($.isFunction(settings.copy)){ |
||||||
|
o.bind('zClip_copy',settings.copy); |
||||||
|
} |
||||||
|
if($.isFunction(settings.beforeCopy)){ |
||||||
|
o.bind('zClip_beforeCopy',settings.beforeCopy); |
||||||
|
} |
||||||
|
if($.isFunction(settings.afterCopy)){ |
||||||
|
o.bind('zClip_afterCopy',settings.afterCopy); |
||||||
|
}
|
||||||
|
|
||||||
|
clip.setHandCursor(settings.setHandCursor); |
||||||
|
clip.setCSSEffects(settings.setCSSEffects); |
||||||
|
clip.addEventListener('mouseOver', function (client) { |
||||||
|
o.trigger('mouseenter'); |
||||||
|
}); |
||||||
|
clip.addEventListener('mouseOut', function (client) { |
||||||
|
o.trigger('mouseleave'); |
||||||
|
}); |
||||||
|
clip.addEventListener('mouseDown', function (client) { |
||||||
|
|
||||||
|
o.trigger('mousedown'); |
||||||
|
|
||||||
|
if(!$.isFunction(settings.copy)){ |
||||||
|
clip.setText(settings.copy); |
||||||
|
} else { |
||||||
|
clip.setText(o.triggerHandler('zClip_copy')); |
||||||
|
}
|
||||||
|
|
||||||
|
if ($.isFunction(settings.beforeCopy)) { |
||||||
|
o.trigger('zClip_beforeCopy');
|
||||||
|
} |
||||||
|
|
||||||
|
}); |
||||||
|
|
||||||
|
clip.addEventListener('complete', function (client, text) { |
||||||
|
|
||||||
|
if ($.isFunction(settings.afterCopy)) { |
||||||
|
|
||||||
|
o.trigger('zClip_afterCopy'); |
||||||
|
|
||||||
|
} else { |
||||||
|
if (text.length > 500) { |
||||||
|
text = text.substr(0, 500) + "...\n\n(" + (text.length - 500) + " characters not shown)"; |
||||||
|
} |
||||||
|
|
||||||
|
o.removeClass('hover'); |
||||||
|
alert("Copied text to clipboard:\n\n " + text); |
||||||
|
} |
||||||
|
|
||||||
|
if (settings.clickAfter) { |
||||||
|
o.trigger('click'); |
||||||
|
} |
||||||
|
|
||||||
|
}); |
||||||
|
|
||||||
|
|
||||||
|
clip.glue(o[0], o.parent()[0]); |
||||||
|
|
||||||
|
$(window).bind('load resize',function(){clip.reposition();}); |
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
}); |
||||||
|
|
||||||
|
} else if (typeof params == "string") { |
||||||
|
|
||||||
|
return this.each(function () { |
||||||
|
|
||||||
|
var o = $(this); |
||||||
|
|
||||||
|
params = params.toLowerCase(); |
||||||
|
var zclipId = o.data('zclipId'); |
||||||
|
var clipElm = $('#' + zclipId + '.zclip'); |
||||||
|
|
||||||
|
if (params == "remove") { |
||||||
|
|
||||||
|
clipElm.remove(); |
||||||
|
o.removeClass('active hover'); |
||||||
|
|
||||||
|
} else if (params == "hide") { |
||||||
|
|
||||||
|
clipElm.hide(); |
||||||
|
o.removeClass('active hover'); |
||||||
|
|
||||||
|
} else if (params == "show") { |
||||||
|
|
||||||
|
clipElm.show(); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
}); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
})(jQuery); |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// ZeroClipboard
|
||||||
|
// Simple Set Clipboard System
|
||||||
|
// Author: Joseph Huckaby
|
||||||
|
var ZeroClipboard = { |
||||||
|
|
||||||
|
version: "1.0.7", |
||||||
|
clients: {}, |
||||||
|
// registered upload clients on page, indexed by id
|
||||||
|
moviePath: 'ZeroClipboard.swf', |
||||||
|
// URL to movie
|
||||||
|
nextId: 1, |
||||||
|
// ID of next movie
|
||||||
|
$: function (thingy) { |
||||||
|
// simple DOM lookup utility function
|
||||||
|
if (typeof(thingy) == 'string') thingy = document.getElementById(thingy); |
||||||
|
if (!thingy.addClass) { |
||||||
|
// extend element with a few useful methods
|
||||||
|
thingy.hide = function () { |
||||||
|
this.style.display = 'none'; |
||||||
|
}; |
||||||
|
thingy.show = function () { |
||||||
|
this.style.display = ''; |
||||||
|
}; |
||||||
|
thingy.addClass = function (name) { |
||||||
|
this.removeClass(name); |
||||||
|
this.className += ' ' + name; |
||||||
|
}; |
||||||
|
thingy.removeClass = function (name) { |
||||||
|
var classes = this.className.split(/\s+/); |
||||||
|
var idx = -1; |
||||||
|
for (var k = 0; k < classes.length; k++) { |
||||||
|
if (classes[k] == name) { |
||||||
|
idx = k; |
||||||
|
k = classes.length; |
||||||
|
} |
||||||
|
} |
||||||
|
if (idx > -1) { |
||||||
|
classes.splice(idx, 1); |
||||||
|
this.className = classes.join(' '); |
||||||
|
} |
||||||
|
return this; |
||||||
|
}; |
||||||
|
thingy.hasClass = function (name) { |
||||||
|
return !!this.className.match(new RegExp("\\s*" + name + "\\s*")); |
||||||
|
}; |
||||||
|
} |
||||||
|
return thingy; |
||||||
|
}, |
||||||
|
|
||||||
|
setMoviePath: function (path) { |
||||||
|
// set path to ZeroClipboard.swf
|
||||||
|
this.moviePath = path; |
||||||
|
}, |
||||||
|
|
||||||
|
dispatch: function (id, eventName, args) { |
||||||
|
// receive event from flash movie, send to client
|
||||||
|
var client = this.clients[id]; |
||||||
|
if (client) { |
||||||
|
client.receiveEvent(eventName, args); |
||||||
|
} |
||||||
|
}, |
||||||
|
|
||||||
|
register: function (id, client) { |
||||||
|
// register new client to receive events
|
||||||
|
this.clients[id] = client; |
||||||
|
}, |
||||||
|
|
||||||
|
getDOMObjectPosition: function (obj, stopObj) { |
||||||
|
// get absolute coordinates for dom element
|
||||||
|
var info = { |
||||||
|
left: 0, |
||||||
|
top: 0, |
||||||
|
width: obj.width ? obj.width : obj.offsetWidth, |
||||||
|
height: obj.height ? obj.height : obj.offsetHeight |
||||||
|
}; |
||||||
|
|
||||||
|
if (obj && (obj != stopObj)) { |
||||||
|
info.left += obj.offsetLeft; |
||||||
|
info.top += obj.offsetTop; |
||||||
|
} |
||||||
|
|
||||||
|
return info; |
||||||
|
}, |
||||||
|
|
||||||
|
Client: function (elem) { |
||||||
|
// constructor for new simple upload client
|
||||||
|
this.handlers = {}; |
||||||
|
|
||||||
|
// unique ID
|
||||||
|
this.id = ZeroClipboard.nextId++; |
||||||
|
this.movieId = 'ZeroClipboardMovie_' + this.id; |
||||||
|
|
||||||
|
// register client with singleton to receive flash events
|
||||||
|
ZeroClipboard.register(this.id, this); |
||||||
|
|
||||||
|
// create movie
|
||||||
|
if (elem) this.glue(elem); |
||||||
|
} |
||||||
|
}; |
||||||
|
|
||||||
|
ZeroClipboard.Client.prototype = { |
||||||
|
|
||||||
|
id: 0, |
||||||
|
// unique ID for us
|
||||||
|
ready: false, |
||||||
|
// whether movie is ready to receive events or not
|
||||||
|
movie: null, |
||||||
|
// reference to movie object
|
||||||
|
clipText: '', |
||||||
|
// text to copy to clipboard
|
||||||
|
handCursorEnabled: true, |
||||||
|
// whether to show hand cursor, or default pointer cursor
|
||||||
|
cssEffects: true, |
||||||
|
// enable CSS mouse effects on dom container
|
||||||
|
handlers: null, |
||||||
|
// user event handlers
|
||||||
|
glue: function (elem, appendElem, stylesToAdd) { |
||||||
|
// glue to DOM element
|
||||||
|
// elem can be ID or actual DOM element object
|
||||||
|
this.domElement = ZeroClipboard.$(elem); |
||||||
|
|
||||||
|
// float just above object, or zIndex 99 if dom element isn't set
|
||||||
|
var zIndex = 99; |
||||||
|
if (this.domElement.style.zIndex) { |
||||||
|
zIndex = parseInt(this.domElement.style.zIndex, 10) + 1; |
||||||
|
} |
||||||
|
|
||||||
|
if (typeof(appendElem) == 'string') { |
||||||
|
appendElem = ZeroClipboard.$(appendElem); |
||||||
|
} else if (typeof(appendElem) == 'undefined') { |
||||||
|
appendElem = document.getElementsByTagName('body')[0]; |
||||||
|
} |
||||||
|
|
||||||
|
// find X/Y position of domElement
|
||||||
|
var box = ZeroClipboard.getDOMObjectPosition(this.domElement, appendElem); |
||||||
|
|
||||||
|
// create floating DIV above element
|
||||||
|
this.div = document.createElement('div'); |
||||||
|
this.div.className = "zclip"; |
||||||
|
this.div.id = "zclip-" + this.movieId; |
||||||
|
$(this.domElement).data('zclipId', 'zclip-' + this.movieId); |
||||||
|
var style = this.div.style; |
||||||
|
style.position = 'absolute'; |
||||||
|
style.left = '' + box.left + 'px'; |
||||||
|
style.top = '' + box.top + 'px'; |
||||||
|
style.width = '' + box.width + 'px'; |
||||||
|
style.height = '' + box.height + 'px'; |
||||||
|
style.zIndex = zIndex; |
||||||
|
|
||||||
|
if (typeof(stylesToAdd) == 'object') { |
||||||
|
for (addedStyle in stylesToAdd) { |
||||||
|
style[addedStyle] = stylesToAdd[addedStyle]; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
// style.backgroundColor = '#f00'; // debug
|
||||||
|
appendElem.appendChild(this.div); |
||||||
|
|
||||||
|
this.div.innerHTML = this.getHTML(box.width, box.height); |
||||||
|
}, |
||||||
|
|
||||||
|
getHTML: function (width, height) { |
||||||
|
// return HTML for movie
|
||||||
|
var html = ''; |
||||||
|
var flashvars = 'id=' + this.id + '&width=' + width + '&height=' + height; |
||||||
|
|
||||||
|
if (navigator.userAgent.match(/MSIE/)) { |
||||||
|
// IE gets an OBJECT tag
|
||||||
|
var protocol = location.href.match(/^https/i) ? 'https://' : 'http://'; |
||||||
|
html += '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="' + protocol + 'download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="' + width + '" height="' + height + '" id="' + this.movieId + '" align="middle"><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="false" /><param name="movie" value="' + ZeroClipboard.moviePath + '" /><param name="loop" value="false" /><param name="menu" value="false" /><param name="quality" value="best" /><param name="bgcolor" value="#ffffff" /><param name="flashvars" value="' + flashvars + '"/><param name="wmode" value="transparent"/></object>'; |
||||||
|
} else { |
||||||
|
// all other browsers get an EMBED tag
|
||||||
|
html += '<embed id="' + this.movieId + '" src="' + ZeroClipboard.moviePath + '" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="' + width + '" height="' + height + '" name="' + this.movieId + '" align="middle" allowScriptAccess="always" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="' + flashvars + '" wmode="transparent" />'; |
||||||
|
} |
||||||
|
return html; |
||||||
|
}, |
||||||
|
|
||||||
|
hide: function () { |
||||||
|
// temporarily hide floater offscreen
|
||||||
|
if (this.div) { |
||||||
|
this.div.style.left = '-2000px'; |
||||||
|
} |
||||||
|
}, |
||||||
|
|
||||||
|
show: function () { |
||||||
|
// show ourselves after a call to hide()
|
||||||
|
this.reposition(); |
||||||
|
}, |
||||||
|
|
||||||
|
destroy: function () { |
||||||
|
// destroy control and floater
|
||||||
|
if (this.domElement && this.div) { |
||||||
|
this.hide(); |
||||||
|
this.div.innerHTML = ''; |
||||||
|
|
||||||
|
var body = document.getElementsByTagName('body')[0]; |
||||||
|
try { |
||||||
|
body.removeChild(this.div); |
||||||
|
} catch (e) {; |
||||||
|
} |
||||||
|
|
||||||
|
this.domElement = null; |
||||||
|
this.div = null; |
||||||
|
} |
||||||
|
}, |
||||||
|
|
||||||
|
reposition: function (elem) { |
||||||
|
// reposition our floating div, optionally to new container
|
||||||
|
// warning: container CANNOT change size, only position
|
||||||
|
if (elem) { |
||||||
|
this.domElement = ZeroClipboard.$(elem); |
||||||
|
if (!this.domElement) this.hide(); |
||||||
|
} |
||||||
|
|
||||||
|
if (this.domElement && this.div) { |
||||||
|
var box = ZeroClipboard.getDOMObjectPosition(this.domElement); |
||||||
|
var style = this.div.style; |
||||||
|
style.left = '' + box.left + 'px'; |
||||||
|
style.top = '' + box.top + 'px'; |
||||||
|
} |
||||||
|
}, |
||||||
|
|
||||||
|
setText: function (newText) { |
||||||
|
// set text to be copied to clipboard
|
||||||
|
this.clipText = newText; |
||||||
|
if (this.ready) { |
||||||
|
this.movie.setText(newText); |
||||||
|
} |
||||||
|
}, |
||||||
|
|
||||||
|
addEventListener: function (eventName, func) { |
||||||
|
// add user event listener for event
|
||||||
|
// event types: load, queueStart, fileStart, fileComplete, queueComplete, progress, error, cancel
|
||||||
|
eventName = eventName.toString().toLowerCase().replace(/^on/, ''); |
||||||
|
if (!this.handlers[eventName]) { |
||||||
|
this.handlers[eventName] = []; |
||||||
|
} |
||||||
|
this.handlers[eventName].push(func); |
||||||
|
}, |
||||||
|
|
||||||
|
setHandCursor: function (enabled) { |
||||||
|
// enable hand cursor (true), or default arrow cursor (false)
|
||||||
|
this.handCursorEnabled = enabled; |
||||||
|
if (this.ready) { |
||||||
|
this.movie.setHandCursor(enabled); |
||||||
|
} |
||||||
|
}, |
||||||
|
|
||||||
|
setCSSEffects: function (enabled) { |
||||||
|
// enable or disable CSS effects on DOM container
|
||||||
|
this.cssEffects = !! enabled; |
||||||
|
}, |
||||||
|
|
||||||
|
receiveEvent: function (eventName, args) { |
||||||
|
// receive event from flash
|
||||||
|
eventName = eventName.toString().toLowerCase().replace(/^on/, ''); |
||||||
|
|
||||||
|
// special behavior for certain events
|
||||||
|
switch (eventName) { |
||||||
|
case 'load': |
||||||
|
// movie claims it is ready, but in IE this isn't always the case...
|
||||||
|
// bug fix: Cannot extend EMBED DOM elements in Firefox, must use traditional function
|
||||||
|
this.movie = document.getElementById(this.movieId); |
||||||
|
if (!this.movie) { |
||||||
|
var self = this; |
||||||
|
setTimeout(function () { |
||||||
|
self.receiveEvent('load', null); |
||||||
|
}, 1); |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
// firefox on pc needs a "kick" in order to set these in certain cases
|
||||||
|
if (!this.ready && navigator.userAgent.match(/Firefox/) && navigator.userAgent.match(/Windows/)) { |
||||||
|
var self = this; |
||||||
|
setTimeout(function () { |
||||||
|
self.receiveEvent('load', null); |
||||||
|
}, 100); |
||||||
|
this.ready = true; |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
this.ready = true; |
||||||
|
try { |
||||||
|
this.movie.setText(this.clipText); |
||||||
|
} catch (e) {} |
||||||
|
try { |
||||||
|
this.movie.setHandCursor(this.handCursorEnabled); |
||||||
|
} catch (e) {} |
||||||
|
break; |
||||||
|
|
||||||
|
case 'mouseover': |
||||||
|
if (this.domElement && this.cssEffects) { |
||||||
|
this.domElement.addClass('hover'); |
||||||
|
if (this.recoverActive) { |
||||||
|
this.domElement.addClass('active'); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
break; |
||||||
|
|
||||||
|
case 'mouseout': |
||||||
|
if (this.domElement && this.cssEffects) { |
||||||
|
this.recoverActive = false; |
||||||
|
if (this.domElement.hasClass('active')) { |
||||||
|
this.domElement.removeClass('active'); |
||||||
|
this.recoverActive = true; |
||||||
|
} |
||||||
|
this.domElement.removeClass('hover'); |
||||||
|
|
||||||
|
} |
||||||
|
break; |
||||||
|
|
||||||
|
case 'mousedown': |
||||||
|
if (this.domElement && this.cssEffects) { |
||||||
|
this.domElement.addClass('active'); |
||||||
|
} |
||||||
|
break; |
||||||
|
|
||||||
|
case 'mouseup': |
||||||
|
if (this.domElement && this.cssEffects) { |
||||||
|
this.domElement.removeClass('active'); |
||||||
|
this.recoverActive = false; |
||||||
|
} |
||||||
|
break; |
||||||
|
} // switch eventName
|
||||||
|
if (this.handlers[eventName]) { |
||||||
|
for (var idx = 0, len = this.handlers[eventName].length; idx < len; idx++) { |
||||||
|
var func = this.handlers[eventName][idx]; |
||||||
|
|
||||||
|
if (typeof(func) == 'function') { |
||||||
|
// actual function reference
|
||||||
|
func(this, args); |
||||||
|
} else if ((typeof(func) == 'object') && (func.length == 2)) { |
||||||
|
// PHP style object + method, i.e. [myObject, 'myMethod']
|
||||||
|
func[0][func[1]](this, args); |
||||||
|
} else if (typeof(func) == 'string') { |
||||||
|
// name of function
|
||||||
|
window[func](this, args); |
||||||
|
} |
||||||
|
} // foreach event handler defined
|
||||||
|
} // user defined handler for event
|
||||||
|
} |
||||||
|
|
||||||
|
};
|
||||||
|
|
Loading…
Reference in new issue