quick_script 0.5.14 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/lib/quick_script/version.rb
CHANGED
@@ -11,6 +11,9 @@ Array.prototype.itemAt = (val)->
|
|
11
11
|
Array.prototype.pushOnce = (item) ->
|
12
12
|
if (!this.includes(item))
|
13
13
|
this.push(item)
|
14
|
+
Array.prototype.remove = (item) ->
|
15
|
+
idx = this.indexOf(item)
|
16
|
+
this.splice(idx, 1) if idx > -1
|
14
17
|
Date.from_utc = (utc) ->
|
15
18
|
new Date(utc * 1000)
|
16
19
|
Date.prototype.to_utc = ->
|
@@ -61,6 +61,48 @@
|
|
61
61
|
owner: this
|
62
62
|
ko.applyBindingsToNode(element, { checked: interceptor })
|
63
63
|
|
64
|
+
ko.bindingHandlers.untabbable =
|
65
|
+
update : (element, valueAccessor, bindingsAccessor, viewModel) ->
|
66
|
+
if (valueAccessor())
|
67
|
+
$(element).find('iframe, input, textarea, a, iframe').attr('tabIndex', -1)
|
68
|
+
else
|
69
|
+
$(element).find('input, textarea, a, iframe').removeAttr('tabIndex')
|
70
|
+
|
71
|
+
ko.bindingHandlers.carousel =
|
72
|
+
init : (element, valueAccessor, bindingsAccessor, viewModel) ->
|
73
|
+
idx = viewModel.getViewBoxIndex(viewModel.task())
|
74
|
+
new_el = $(element).find('.slide-item-' + idx)
|
75
|
+
new_el.addClass('active')
|
76
|
+
update : (element, valueAccessor, bindingsAccessor, viewModel) ->
|
77
|
+
opts = viewModel.transition.opts
|
78
|
+
if viewModel.task() != null
|
79
|
+
idx = viewModel.getViewBoxIndex(viewModel.task())
|
80
|
+
console.log('updating slider to ' + idx)
|
81
|
+
old_idx = opts.slide_index()
|
82
|
+
new_el = $(element).find('.slide-item-' + idx)
|
83
|
+
old_el = $(element).find('.slide-item-' + old_idx)
|
84
|
+
if idx > old_idx
|
85
|
+
new_el.addClass('next')
|
86
|
+
new_el[0].offsetWidth if new_el[0]?
|
87
|
+
new_el.addClass('left')
|
88
|
+
old_el.addClass('left')
|
89
|
+
else
|
90
|
+
new_el.addClass('prev')
|
91
|
+
new_el[0].offsetWidth if new_el[0]?
|
92
|
+
new_el.addClass('right')
|
93
|
+
old_el.addClass('right')
|
94
|
+
setTimeout ->
|
95
|
+
new_el.removeClass('next left prev right')
|
96
|
+
old_el.removeClass('next left prev right')
|
97
|
+
old_el.removeClass('active')
|
98
|
+
new_el.addClass('active')
|
99
|
+
, 600
|
100
|
+
opts.slide_index(idx)
|
101
|
+
|
102
|
+
ko.bindingHandlers.bindelem =
|
103
|
+
init : (element, valueAccessor, bindingsAccessor, viewModel) ->
|
104
|
+
viewModel.element = element
|
105
|
+
|
64
106
|
ko.bindingHandlers.tinymce =
|
65
107
|
init : (element, valueAccessor, bindingsAccessor, viewModel) ->
|
66
108
|
options = {
|
@@ -413,6 +455,8 @@ class @Model
|
|
413
455
|
console.log("Delete error encountered")
|
414
456
|
@model_state(ko.modelStates.READY)
|
415
457
|
@model_state(ko.modelStates.SAVING)
|
458
|
+
removeFromCollection : =>
|
459
|
+
@collection.removeItemById(@id()) if @collection?
|
416
460
|
toJS : (flds)=>
|
417
461
|
flds ||= @fields
|
418
462
|
obj = {}
|
@@ -485,7 +529,7 @@ class @FileModel extends @Model
|
|
485
529
|
@input.is_image = ko.computed ->
|
486
530
|
if @input.present() then @input.file().type.match('image.*') else false
|
487
531
|
, this
|
488
|
-
@input.clear =
|
532
|
+
@input.clear = => @input.files([])
|
489
533
|
reset : ->
|
490
534
|
super
|
491
535
|
@input.files([])
|
@@ -688,7 +732,10 @@ class @View
|
|
688
732
|
@has_error = ko.computed (-> @error().length > 0), this
|
689
733
|
@view = null
|
690
734
|
@task = ko.observable(null)
|
691
|
-
@
|
735
|
+
@prev_task = ko.observable(null)
|
736
|
+
@transition = {type : 'fade', opts : {'slide_pos' : ko.observable(0), 'slide_index' : ko.observable(0)}}
|
737
|
+
@transition.has_slide_css = (css, idx)=>
|
738
|
+
@transition.opts['slide_css' + css]().includes? idx
|
692
739
|
@init()
|
693
740
|
@setupViewBox()
|
694
741
|
show : ->
|
@@ -699,13 +746,29 @@ class @View
|
|
699
746
|
setupViewBox : ->
|
700
747
|
if @transition.type == 'slide'
|
701
748
|
@task.subscribe (val)=>
|
749
|
+
return
|
750
|
+
opts = @transition.opts
|
702
751
|
if val != null
|
703
|
-
|
704
|
-
|
705
|
-
@
|
706
|
-
|
707
|
-
|
708
|
-
|
752
|
+
idx = @getViewBoxIndex(val)
|
753
|
+
old_idx = opts.slide_index()
|
754
|
+
new_el = $(@element).find('.slide-item-' + idx)
|
755
|
+
old_el = $(@element).find('.slide-item-' + old_idx)
|
756
|
+
if idx > old_idx
|
757
|
+
new_el.addClass('next')
|
758
|
+
new_el[0].offsetWidth if new_el[0]?
|
759
|
+
new_el.addClass('left')
|
760
|
+
old_el.addClass('left')
|
761
|
+
else
|
762
|
+
new_el.addClass('prev')
|
763
|
+
new_el[0].offsetWidth if new_el[0]?
|
764
|
+
new_el.addClass('right')
|
765
|
+
old_el.addClass('right')
|
766
|
+
setTimeout ->
|
767
|
+
new_el.removeClass('next left prev right')
|
768
|
+
old_el.removeClass('active next left prev right')
|
769
|
+
new_el.addClass('active')
|
770
|
+
, 600
|
771
|
+
opts.slide_index(idx)
|
709
772
|
load : ->
|
710
773
|
addView : (name, view_class, tpl) ->
|
711
774
|
@views[name] = new view_class(name, this)
|
@@ -727,6 +790,7 @@ class @View
|
|
727
790
|
if (last_view != view)
|
728
791
|
console.log("View [#{view.name}] selected.")
|
729
792
|
@view = view
|
793
|
+
@prev_task(@task())
|
730
794
|
@task(view.name)
|
731
795
|
last_view.hide() if last_view?
|
732
796
|
view.show()
|
@@ -747,6 +811,17 @@ class @View
|
|
747
811
|
getViewBoxIndex : (view_name) ->
|
748
812
|
arr = Object.keys(@views)
|
749
813
|
arr.indexAt(view_name)
|
814
|
+
getViewByIndex : (idx) ->
|
815
|
+
keys = Object.keys(@views)
|
816
|
+
@views[keys[idx]]
|
817
|
+
afterRender : =>
|
818
|
+
if @transition.type == 'slide'
|
819
|
+
setTimeout =>
|
820
|
+
console.log('after render')
|
821
|
+
idx = @getViewBoxIndex(@task())
|
822
|
+
new_el = $(@element).find('.slide-item-' + idx)
|
823
|
+
new_el.addClass('active')
|
824
|
+
500
|
750
825
|
showAsOverlay : (tmp, opts, cls)=>
|
751
826
|
Overlay.add(this, tmp, opts, cls)
|
752
827
|
hideOverlay : =>
|
@@ -854,6 +929,14 @@ class @AccountAdapter
|
|
854
929
|
progress : opts.progress
|
855
930
|
success : opts.success
|
856
931
|
error : opts.error
|
932
|
+
delete : (opts)->
|
933
|
+
$.ajax_qs
|
934
|
+
type : 'DELETE'
|
935
|
+
url : opts.url
|
936
|
+
data : opts.data
|
937
|
+
progress : opts.progress
|
938
|
+
success : opts.success
|
939
|
+
error : opts.error
|
857
940
|
add_method : (fn_name, fn)->
|
858
941
|
@[fn_name] = fn.bind(this)
|
859
942
|
|
@@ -865,17 +948,14 @@ class @AppView extends @View
|
|
865
948
|
@path_parts = []
|
866
949
|
ko.addTemplate "app-view", """
|
867
950
|
<div data-bind='foreach : viewList()'>
|
868
|
-
<div data-bind="fadeVisible : is_visible(), template : { name : getViewName }, attr : { id : templateID}"></div>
|
951
|
+
<div data-bind="fadeVisible : is_visible(), template : { name : getViewName, afterRender : afterRender}, attr : { id : templateID}, bindelem : true"></div>
|
869
952
|
</div>
|
870
953
|
"""
|
871
954
|
ko.addTemplate "app-slide", """
|
872
|
-
<div data-bind="style : {width : transition.opts.width + 'px', height : transition.opts.height + 'px',
|
873
|
-
<div
|
874
|
-
<div data-bind=
|
875
|
-
<div data-bind="template : { name : getViewName }, attr : {id : templateID}, style : {width : owner.transition.opts.width + 'px', height : owner.transition.opts.height + 'px', left : ($index() * owner.transition.opts.width) + 'px', 'position' : 'absolute', overflowY : 'auto'}, visible : is_visible() || owner.transition.opts.working()"></div>
|
876
|
-
</div>
|
955
|
+
<div class="view-slider" data-bind="style : {width : transition.opts.width + 'px', height : transition.opts.height + 'px'}, carousel : true">
|
956
|
+
<div data-bind='foreach : viewList()'>
|
957
|
+
<div class="slide-item" data-bind="template : { name : getViewName }, attr : {id : templateID, class : 'slide-item slide-item-' + $index()}, css : {}, style : {width : owner.transition.opts.width + 'px', height : owner.transition.opts.height + 'px'}, bindelem : true"></div>
|
877
958
|
</div>
|
878
|
-
<div style='clear: both;'></div>
|
879
959
|
</div>
|
880
960
|
"""
|
881
961
|
@current_user = new @account_model()
|
@@ -911,4 +991,5 @@ class @AppView extends @View
|
|
911
991
|
|
912
992
|
# layout bindings
|
913
993
|
$('body').koBind(appViewModel)
|
994
|
+
appViewModel.afterRender()
|
914
995
|
|
@@ -149,4 +149,29 @@
|
|
149
149
|
font-size: 20px
|
150
150
|
|
151
151
|
.view-slider
|
152
|
-
|
152
|
+
overflow: hidden
|
153
|
+
position: relative
|
154
|
+
.slide-item
|
155
|
+
+transition(0.60s ease-in-out left)
|
156
|
+
position: relative
|
157
|
+
overflow-y: auto
|
158
|
+
display: none
|
159
|
+
&.next
|
160
|
+
left: 100%
|
161
|
+
&.left
|
162
|
+
left: 0
|
163
|
+
&.prev
|
164
|
+
left: -100%
|
165
|
+
&.right
|
166
|
+
left: 0
|
167
|
+
&.active, &.prev, &.next
|
168
|
+
display: block
|
169
|
+
&.prev, &.next
|
170
|
+
top: 0
|
171
|
+
position: absolute
|
172
|
+
&.active.left
|
173
|
+
left: -100%
|
174
|
+
&.active.right
|
175
|
+
left: 100%
|
176
|
+
&.active
|
177
|
+
left: 0px
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: quick_script
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 3
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 0.
|
8
|
+
- 7
|
9
|
+
- 0
|
10
|
+
version: 0.7.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Alan Graham
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-07-
|
18
|
+
date: 2012-07-09 00:00:00 Z
|
19
19
|
dependencies: []
|
20
20
|
|
21
21
|
description: Framework for single-page web applications
|