Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
erp5
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Eugene Shen
erp5
Commits
fdcbdb06
Commit
fdcbdb06
authored
Apr 04, 2017
by
Eugene Shen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Put all DOM modifications into onStateChange
parent
17bb0e4e
Changes
7
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
5276 additions
and
221 deletions
+5276
-221
bt5/officejs_eyqs/PathTemplateItem/web_page_module/fast_priority_queue_js.js
...athTemplateItem/web_page_module/fast_priority_queue_js.js
+179
-0
bt5/officejs_eyqs/PathTemplateItem/web_page_module/fast_priority_queue_js.xml
...thTemplateItem/web_page_module/fast_priority_queue_js.xml
+123
-0
bt5/officejs_eyqs/PathTemplateItem/web_page_module/gadget_erp5_page_chat_box_html.html
...eItem/web_page_module/gadget_erp5_page_chat_box_html.html
+18
-1
bt5/officejs_eyqs/PathTemplateItem/web_page_module/gadget_erp5_page_chat_box_js.js
...plateItem/web_page_module/gadget_erp5_page_chat_box_js.js
+226
-219
bt5/officejs_eyqs/PathTemplateItem/web_page_module/handlebars_js.js
...js_eyqs/PathTemplateItem/web_page_module/handlebars_js.js
+4608
-0
bt5/officejs_eyqs/PathTemplateItem/web_page_module/handlebars_js.xml
...s_eyqs/PathTemplateItem/web_page_module/handlebars_js.xml
+119
-0
bt5/officejs_eyqs/bt/template_path_list
bt5/officejs_eyqs/bt/template_path_list
+3
-1
No files found.
bt5/officejs_eyqs/PathTemplateItem/web_page_module/fast_priority_queue_js.js
0 → 100644
View file @
fdcbdb06
/**
* FastPriorityQueue.js : a fast heap-based priority queue in JavaScript.
* (c) the authors
* Licensed under the Apache License, Version 2.0.
*
* Speed-optimized heap-based priority queue for modern browsers and JavaScript engines.
*
* Usage :
Installation (in shell, if you use node):
$ npm install fastpriorityqueue
Running test program (in JavaScript):
// var FastPriorityQueue = require("fastpriorityqueue");// in node
var x = new FastPriorityQueue();
x.add(1);
x.add(0);
x.add(5);
x.add(4);
x.add(3);
x.peek(); // should return 0, leaves x unchanged
x.size; // should return 5, leaves x unchanged
while(!x.isEmpty()) {
console.log(x.poll());
} // will print 0 1 3 4 5
x.trim(); // (optional) optimizes memory usage
*/
"
use strict
"
;
var
defaultcomparator
=
function
(
a
,
b
)
{
return
a
<
b
;
};
// the provided comparator function should take a, b and return *true* when a < b
function
FastPriorityQueue
(
comparator
)
{
this
.
array
=
[];
this
.
size
=
0
;
this
.
compare
=
comparator
||
defaultcomparator
;
}
// Add an element the the queue
// runs in O(log n) time
FastPriorityQueue
.
prototype
.
add
=
function
(
myval
)
{
var
i
=
this
.
size
;
this
.
array
[
this
.
size
]
=
myval
;
this
.
size
+=
1
;
var
p
;
var
ap
;
while
(
i
>
0
)
{
p
=
(
i
-
1
)
>>
1
;
ap
=
this
.
array
[
p
];
if
(
!
this
.
compare
(
myval
,
ap
))
{
break
;
}
this
.
array
[
i
]
=
ap
;
i
=
p
;
}
this
.
array
[
i
]
=
myval
;
};
// replace the content of the heap by provided array and "heapifies it"
FastPriorityQueue
.
prototype
.
heapify
=
function
(
arr
)
{
this
.
array
=
arr
;
this
.
size
=
arr
.
length
;
var
i
;
for
(
i
=
(
this
.
size
>>
1
);
i
>=
0
;
i
--
)
{
this
.
_percolateDown
(
i
);
}
};
// for internal use
FastPriorityQueue
.
prototype
.
_percolateUp
=
function
(
i
)
{
var
myval
=
this
.
array
[
i
];
var
p
;
var
ap
;
while
(
i
>
0
)
{
p
=
(
i
-
1
)
>>
1
;
ap
=
this
.
array
[
p
];
if
(
!
this
.
compare
(
myval
,
ap
))
{
break
;
}
this
.
array
[
i
]
=
ap
;
i
=
p
;
}
this
.
array
[
i
]
=
myval
;
};
// for internal use
FastPriorityQueue
.
prototype
.
_percolateDown
=
function
(
i
)
{
var
size
=
this
.
size
;
var
hsize
=
this
.
size
>>>
1
;
var
ai
=
this
.
array
[
i
];
var
l
;
var
r
;
var
bestc
;
while
(
i
<
hsize
)
{
l
=
(
i
<<
1
)
+
1
;
r
=
l
+
1
;
bestc
=
this
.
array
[
l
];
if
(
r
<
size
)
{
if
(
this
.
compare
(
this
.
array
[
r
],
bestc
))
{
l
=
r
;
bestc
=
this
.
array
[
r
];
}
}
if
(
!
this
.
compare
(
bestc
,
ai
))
{
break
;
}
this
.
array
[
i
]
=
bestc
;
i
=
l
;
}
this
.
array
[
i
]
=
ai
;
};
// Look at the top of the queue (a smallest element)
// executes in constant time
//
// This function assumes that the priority queue is
// not empty and the caller is resposible for the check.
// You can use an expression such as
// "isEmpty() ? undefined : peek()"
// if you expect to be calling peek on an empty priority queue.
//
FastPriorityQueue
.
prototype
.
peek
=
function
()
{
return
this
.
array
[
0
];
};
// remove the element on top of the heap (a smallest element)
// runs in logarithmic time
//
//
// This function assumes that the priority queue is
// not empty, and the caller is responsible for the check.
// You can use an expression such as
// "isEmpty() ? undefined : poll()"
// if you expect to be calling poll on an empty priority queue.
//
// For long-running and large priority queues, or priority queues
// storing large objects, you may want to call the trim function
// at strategic times to recover allocated memory.
FastPriorityQueue
.
prototype
.
poll
=
function
()
{
var
ans
=
this
.
array
[
0
];
if
(
this
.
size
>
1
)
{
this
.
array
[
0
]
=
this
.
array
[
--
this
.
size
];
this
.
_percolateDown
(
0
|
0
);
}
else
{
this
.
size
-=
1
;
}
return
ans
;
};
// recover unused memory (for long-running priority queues)
FastPriorityQueue
.
prototype
.
trim
=
function
()
{
this
.
array
=
this
.
array
.
slice
(
0
,
this
.
size
);
};
// Check whether the heap is empty
FastPriorityQueue
.
prototype
.
isEmpty
=
function
()
{
return
this
.
size
===
0
;
};
// just for illustration purposes
var
main
=
function
()
{
// main code
var
x
=
new
FastPriorityQueue
(
function
(
a
,
b
)
{
return
a
<
b
;
});
x
.
add
(
1
);
x
.
add
(
0
);
x
.
add
(
5
);
x
.
add
(
4
);
x
.
add
(
3
);
while
(
!
x
.
isEmpty
())
{
console
.
log
(
x
.
poll
());
}
};
\ No newline at end of file
bt5/officejs_eyqs/PathTemplateItem/web_page_module/fast_priority_queue_js.xml
0 → 100644
View file @
fdcbdb06
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"Web Script"
module=
"erp5.portal_type"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
_Access_contents_information_Permission
</string>
</key>
<value>
<tuple>
<string>
Anonymous
</string>
<string>
Assignee
</string>
<string>
Assignor
</string>
<string>
Associate
</string>
<string>
Auditor
</string>
<string>
Manager
</string>
<string>
Owner
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
_Add_portal_content_Permission
</string>
</key>
<value>
<tuple>
<string>
Assignee
</string>
<string>
Assignor
</string>
<string>
Manager
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
_Change_local_roles_Permission
</string>
</key>
<value>
<tuple>
<string>
Assignor
</string>
<string>
Manager
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
_Modify_portal_content_Permission
</string>
</key>
<value>
<tuple>
<string>
Assignee
</string>
<string>
Assignor
</string>
<string>
Manager
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
_View_Permission
</string>
</key>
<value>
<tuple>
<string>
Anonymous
</string>
<string>
Assignee
</string>
<string>
Assignor
</string>
<string>
Associate
</string>
<string>
Auditor
</string>
<string>
Manager
</string>
<string>
Owner
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
categories
</string>
</key>
<value>
<tuple>
<string>
classification/collaborative/team
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
content_md5
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
default_reference
</string>
</key>
<value>
<string>
fast_priority_queue.js
</string>
</value>
</item>
<item>
<key>
<string>
description
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
fast_priority_queue_js
</string>
</value>
</item>
<item>
<key>
<string>
language
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
portal_type
</string>
</key>
<value>
<string>
Web Script
</string>
</value>
</item>
<item>
<key>
<string>
short_title
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
title
</string>
</key>
<value>
<string>
Fast Priority Queue JS
</string>
</value>
</item>
<item>
<key>
<string>
version
</string>
</key>
<value>
<none/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
bt5/officejs_eyqs/PathTemplateItem/web_page_module/gadget_erp5_page_chat_box_html.html
View file @
fdcbdb06
...
@@ -7,8 +7,24 @@
...
@@ -7,8 +7,24 @@
<script
src=
"rsvp.js"
></script>
<script
src=
"rsvp.js"
></script>
<script
src=
"renderjs.js"
></script>
<script
src=
"renderjs.js"
></script>
<script
src=
"jiodev.js"
></script>
<script
src=
"jiodev.js"
></script>
<script
src=
"handlebars.js"
></script>
<script
src=
"gadget_global.js"
></script>
<script
src=
"gadget_global.js"
></script>
<script
src=
"fast_priority_queue.js"
></script>
<script
src=
"gadget_erp5_page_chat_box.js"
></script>
<script
src=
"gadget_erp5_page_chat_box.js"
></script>
<script
class=
"chat-list-template"
type=
"text/x-handlebars-template"
>
{{
#
each
list
}}
<
li
style
=
"
color:{{this.color}};
"
>
{{{
this
.
html
}}}
<
/li
>
{{
/
each
}}
</script>
<script
class=
"contact-list-template"
type=
"text/x-handlebars-template"
>
{{
#
each
list
}}
<
li
id
=
"
chat-contact-{{this.id}}
"
class
=
"
chat-contact {{this.class_list}}
"
>
{{
this
.
name
}}
<
/li
>
{{
/
each
}}
</script>
</head>
</head>
<body>
<body>
<div
class=
"chat-box"
>
<div
class=
"chat-box"
>
...
@@ -27,7 +43,8 @@
...
@@ -27,7 +43,8 @@
</div>
</div>
</div>
</div>
<div
class=
"chat-right-panel"
>
<div
class=
"chat-right-panel"
>
<h3
class=
"chat-title center"
></h3>
<h3
class=
"chat-title center"
>
</h3>
<div
class=
"chat-max-height-wrapper"
>
<div
class=
"chat-max-height-wrapper"
>
<div
class=
"chat-right-panel-chat"
>
<div
class=
"chat-right-panel-chat"
>
<ul
class=
"chat-list"
>
<ul
class=
"chat-list"
>
...
...
bt5/officejs_eyqs/PathTemplateItem/web_page_module/gadget_erp5_page_chat_box_js.js
View file @
fdcbdb06
This diff is collapsed.
Click to expand it.
bt5/officejs_eyqs/PathTemplateItem/web_page_module/handlebars_js.js
0 → 100644
View file @
fdcbdb06
This diff is collapsed.
Click to expand it.
bt5/officejs_eyqs/PathTemplateItem/web_page_module/handlebars_js.xml
0 → 100644
View file @
fdcbdb06
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"Web Script"
module=
"erp5.portal_type"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
_Access_contents_information_Permission
</string>
</key>
<value>
<tuple>
<string>
Anonymous
</string>
<string>
Assignee
</string>
<string>
Assignor
</string>
<string>
Associate
</string>
<string>
Auditor
</string>
<string>
Manager
</string>
<string>
Owner
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
_Add_portal_content_Permission
</string>
</key>
<value>
<tuple>
<string>
Assignee
</string>
<string>
Assignor
</string>
<string>
Manager
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
_Change_local_roles_Permission
</string>
</key>
<value>
<tuple>
<string>
Assignor
</string>
<string>
Manager
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
_Modify_portal_content_Permission
</string>
</key>
<value>
<tuple>
<string>
Assignee
</string>
<string>
Assignor
</string>
<string>
Manager
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
_View_Permission
</string>
</key>
<value>
<tuple>
<string>
Anonymous
</string>
<string>
Assignee
</string>
<string>
Assignor
</string>
<string>
Associate
</string>
<string>
Auditor
</string>
<string>
Manager
</string>
<string>
Owner
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
categories
</string>
</key>
<value>
<tuple>
<string>
classification/collaborative/team
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
content_md5
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
default_reference
</string>
</key>
<value>
<string>
handlebars.js
</string>
</value>
</item>
<item>
<key>
<string>
description
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
handlebars_js
</string>
</value>
</item>
<item>
<key>
<string>
language
</string>
</key>
<value>
<string>
en
</string>
</value>
</item>
<item>
<key>
<string>
portal_type
</string>
</key>
<value>
<string>
Web Script
</string>
</value>
</item>
<item>
<key>
<string>
short_title
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
title
</string>
</key>
<value>
<string>
Handlebars JS
</string>
</value>
</item>
<item>
<key>
<string>
version
</string>
</key>
<value>
<string>
001
</string>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
bt5/officejs_eyqs/bt/template_path_list
View file @
fdcbdb06
web_page_module/adapter_js
web_page_module/adapter_js
web_page_module/erp5_page_launcher*
web_page_module/erp5_page_launcher*
web_page_module/fast_priority_queue_js
web_page_module/gadget_erp5_chat_panel_*
web_page_module/gadget_erp5_chat_panel_*
web_page_module/gadget_erp5_chat_webrtc_*
web_page_module/gadget_erp5_chat_webrtc_*
web_page_module/gadget_erp5_nojquery_css
web_page_module/gadget_erp5_nojquery_css
...
@@ -8,4 +9,5 @@ web_page_module/gadget_erp5_page_contact_*
...
@@ -8,4 +9,5 @@ web_page_module/gadget_erp5_page_contact_*
web_page_module/gadget_erp5_page_field_listbox_widget_*
web_page_module/gadget_erp5_page_field_listbox_widget_*
web_page_module/gadget_erp5_page_jio_*_configurator_*
web_page_module/gadget_erp5_page_jio_*_configurator_*
web_page_module/gadget_erp5_page_jio_person_view_*
web_page_module/gadget_erp5_page_jio_person_view_*
web_page_module/gadget_erp5_page_sync_*
web_page_module/gadget_erp5_page_sync_*
\ No newline at end of file
web_page_module/handlebars_js
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment