lol_framework 0.1.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/.gitignore +19 -0
- data/.rspec +4 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +30 -0
- data/Rakefile +1 -0
- data/lib/generators/lol_framework/setup/lol_framework.rb +27 -0
- data/lib/generators/lol_framework/setup/setup_generator.rb +17 -0
- data/lib/lol_framework.rb +8 -0
- data/lib/lol_framework/common.rb +20 -0
- data/lib/lol_framework/config.rb +17 -0
- data/lib/lol_framework/config/components.rb +16 -0
- data/lib/lol_framework/config/components/css.rb +44 -0
- data/lib/lol_framework/config/components/js.rb +75 -0
- data/lib/lol_framework/railtie.rb +14 -0
- data/lib/lol_framework/version.rb +3 -0
- data/lol_framework.gemspec +28 -0
- data/spec/lol_framework/config/components/css_spec.rb +5 -0
- data/spec/lol_framework/config/components/js_spec.rb +11 -0
- data/spec/lol_framework/config/components_spec.rb +24 -0
- data/spec/lol_framework/config_spec.rb +19 -0
- data/spec/lol_framework/lol_framework_spec.rb +13 -0
- data/spec/spec_helper.rb +20 -0
- data/vendor/assets/images/lol_framework/datatable/sorting_bg.png +0 -0
- data/vendor/assets/images/lol_framework/glyphicons-lol-origin-white.png +0 -0
- data/vendor/assets/images/lol_framework/glyphicons-lol-origin.png +0 -0
- data/vendor/assets/images/lol_framework/glyphicons-lol.png +0 -0
- data/vendor/assets/javascripts/.gitkeep +0 -0
- data/vendor/assets/javascripts/Jasmine/jasmine-html.js +616 -0
- data/vendor/assets/javascripts/Jasmine/jasmine.js +2529 -0
- data/vendor/assets/javascripts/lol.js +18 -0
- data/vendor/assets/javascripts/lol_framework/Ajax.coffee +183 -0
- data/vendor/assets/javascripts/lol_framework/Alert.coffee +113 -0
- data/vendor/assets/javascripts/lol_framework/Button.coffee +268 -0
- data/vendor/assets/javascripts/lol_framework/Core.coffee +85 -0
- data/vendor/assets/javascripts/lol_framework/Datatable.coffee +340 -0
- data/vendor/assets/javascripts/lol_framework/Date.coffee +0 -0
- data/vendor/assets/javascripts/lol_framework/Debug.coffee +45 -0
- data/vendor/assets/javascripts/lol_framework/I18n.coffee +81 -0
- data/vendor/assets/javascripts/lol_framework/Lang/en-us.coffee +54 -0
- data/vendor/assets/javascripts/lol_framework/Lang/pt-br.coffee +57 -0
- data/vendor/assets/javascripts/lol_framework/Library/date-functions.js +409 -0
- data/vendor/assets/javascripts/lol_framework/Library/jquery.dataTables.min.js +157 -0
- data/vendor/assets/javascripts/lol_framework/Library/jquery.mobile.js +14 -0
- data/vendor/assets/javascripts/lol_framework/Loader.coffee +83 -0
- data/vendor/assets/javascripts/lol_framework/Lol.coffee +4 -0
- data/vendor/assets/javascripts/lol_framework/Modal.coffee +221 -0
- data/vendor/assets/javascripts/lol_framework/Model.coffee +71 -0
- data/vendor/assets/javascripts/lol_framework/Model/Rest.coffee +15 -0
- data/vendor/assets/javascripts/lol_framework/Tests/Alert.coffee +83 -0
- data/vendor/assets/javascripts/lol_framework/Tests/Core.coffee +35 -0
- data/vendor/assets/javascripts/lol_framework/Tests/Debug.coffee +14 -0
- data/vendor/assets/javascripts/lol_framework/Tests/I18n.coffee +7 -0
- data/vendor/assets/javascripts/lol_framework/Tests/Lang.coffee +130 -0
- data/vendor/assets/javascripts/lol_framework/Tests/Library.coffee +13 -0
- data/vendor/assets/javascripts/lol_framework/Tests/Lol.coffee +4 -0
- data/vendor/assets/javascripts/lol_framework/Tests/Utils.coffee +22 -0
- data/vendor/assets/javascripts/lol_framework/Utils.coffee +42 -0
- data/vendor/assets/javascripts/lol_main_tests.js +43 -0
- data/vendor/assets/stylesheets/.gitkeep +0 -0
- data/vendor/assets/stylesheets/jasmine.css +81 -0
- data/vendor/assets/stylesheets/lol_framework/_mixin.scss +650 -0
- data/vendor/assets/stylesheets/lol_framework/_variable.scss +107 -0
- data/vendor/assets/stylesheets/lol_framework/components/_alert.scss +46 -0
- data/vendor/assets/stylesheets/lol_framework/components/_datatable.scss +172 -0
- data/vendor/assets/stylesheets/lol_framework/components/_loader.scss +15 -0
- data/vendor/assets/stylesheets/lol_framework/components/_modal.scss +68 -0
- metadata +222 -0
@@ -0,0 +1,71 @@
|
|
1
|
+
###
|
2
|
+
@summary Lol Framework
|
3
|
+
@description Framework of RIAs applications
|
4
|
+
@version 1.0.0
|
5
|
+
@file Model.js
|
6
|
+
@author Welington Sampaio (http://welington.zaez.net/)
|
7
|
+
@contact http://welington.zaez.net/site/contato
|
8
|
+
|
9
|
+
@copyright Copyright 2012 Welington Sampaio, all rights reserved.
|
10
|
+
|
11
|
+
This source file is free software, under the license MIT, available at:
|
12
|
+
http://lolframework.zaez.net/license
|
13
|
+
|
14
|
+
This source file is distributed in the hope that it will be useful, but
|
15
|
+
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
16
|
+
or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details.
|
17
|
+
|
18
|
+
For details please refer to: http://welington.zaez.net
|
19
|
+
###
|
20
|
+
|
21
|
+
###
|
22
|
+
Create a new instance of Model.
|
23
|
+
|
24
|
+
@classDescription This class creates a new Model.
|
25
|
+
@param {Object} Receives configuration to create the Model, @see Lol.model.defaults
|
26
|
+
@return {Model} Returns a new Model.
|
27
|
+
@type {Object}
|
28
|
+
###
|
29
|
+
class Lol.Model extends Lol.Core
|
30
|
+
# declaration of variables
|
31
|
+
id : null
|
32
|
+
debugIndex : 1
|
33
|
+
debugPrefix : 'Lol_Model'
|
34
|
+
namespace : '.model'
|
35
|
+
# the methods
|
36
|
+
constructor: (args={})->
|
37
|
+
return false unless @verifyJQuery()
|
38
|
+
@settings = jQuery.extend true, {}, Lol.model.defaults, args
|
39
|
+
@generateId()
|
40
|
+
|
41
|
+
|
42
|
+
Lol.model =
|
43
|
+
defaults :
|
44
|
+
###
|
45
|
+
Defines whether the class should print
|
46
|
+
debug messages
|
47
|
+
###
|
48
|
+
debug : true
|
49
|
+
###
|
50
|
+
Name of table on ralational database or
|
51
|
+
name of module to rest applications
|
52
|
+
@type String
|
53
|
+
###
|
54
|
+
name : null
|
55
|
+
###
|
56
|
+
Fields of relational model
|
57
|
+
@type object
|
58
|
+
@example
|
59
|
+
fields : {
|
60
|
+
{name: "id" , type: 'integer' , hide: true , dateFormat: null},
|
61
|
+
{name: "fullname" , type: 'string' , hide: false, dateFormat: null},
|
62
|
+
{name: "password" , type: 'password', hide: false, dateFormat: null},
|
63
|
+
{name: "create_at", type: 'date' , hide: false, dataFormat: 'Y-m-d H:i:s'}
|
64
|
+
}
|
65
|
+
###
|
66
|
+
fields : {}
|
67
|
+
###
|
68
|
+
Specifies whether the class will use
|
69
|
+
the rest of the standard application
|
70
|
+
###
|
71
|
+
useRest : true
|
@@ -0,0 +1,15 @@
|
|
1
|
+
|
2
|
+
class Lol.model.Rest extends Lol.Core
|
3
|
+
update: (model,id)->
|
4
|
+
delete: (model,id)->
|
5
|
+
insert: (model,data)->
|
6
|
+
|
7
|
+
@destroy: (url)->
|
8
|
+
|
9
|
+
new Lol.Ajax
|
10
|
+
method: 'delete'
|
11
|
+
url : url
|
12
|
+
callbacks:
|
13
|
+
success: (data, textStatus, jqXHR)->
|
14
|
+
new Lol.Alert
|
15
|
+
message: Lol.t 'rest_registry_destroy_ok'
|
@@ -0,0 +1,83 @@
|
|
1
|
+
describe 'Lol.Alert', ->
|
2
|
+
alert = null
|
3
|
+
|
4
|
+
beforeEach ->
|
5
|
+
alert = new Lol.Alert
|
6
|
+
message: 'My Alert'
|
7
|
+
|
8
|
+
it 'should be a function', ->
|
9
|
+
expect(Lol.Alert).toEqual(jasmine.any Function)
|
10
|
+
|
11
|
+
it 'should be able to calling Lol.Core methods', ->
|
12
|
+
expect(alert.generateId).toBeDefined()
|
13
|
+
expect(alert.debug).toBeDefined()
|
14
|
+
expect(alert.destroy).toBeDefined()
|
15
|
+
|
16
|
+
it 'should have a standard settings', ->
|
17
|
+
expect(alert.debugPrefix).toEqual('Lol_Alert')
|
18
|
+
expect(alert.namespace).toEqual('.alert')
|
19
|
+
|
20
|
+
it 'should be able a methods', ->
|
21
|
+
expect(alert.appendClose).toBeDefined()
|
22
|
+
expect(alert.createAlert).toBeDefined()
|
23
|
+
expect(alert.setContainer).toBeDefined()
|
24
|
+
expect(alert.setInterval).toBeDefined()
|
25
|
+
expect(alert.setEvents).toBeDefined()
|
26
|
+
|
27
|
+
it 'should be able to create a close button', ->
|
28
|
+
expect(alert.appendClose()).toEqual(alert.close)
|
29
|
+
|
30
|
+
it 'should be able to create a alert object', ->
|
31
|
+
expect(alert.createAlert()).toEqual(alert.alert)
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
# createAlert: ->
|
36
|
+
# @debug 'Create an object Alert'
|
37
|
+
# @alert = jQuery '<div></div>'
|
38
|
+
# @alert.addClass "alert #{@settings.objects.classes[@settings.type]}"
|
39
|
+
# @alert.append @settings.message
|
40
|
+
# @appendClose()
|
41
|
+
# @alert.appendTo @container
|
42
|
+
# destroy: ->
|
43
|
+
# @debug 'Initializing the destroy method'
|
44
|
+
# @alert.slideUp ->
|
45
|
+
# jQuery(@).remove()
|
46
|
+
# clearInterval(@interval) if @settings.autoRemove
|
47
|
+
# super
|
48
|
+
# setContainer: ->
|
49
|
+
# @debug 'Setting a container object'
|
50
|
+
# if not jQuery( @settings.objects.containerID )
|
51
|
+
# throw "Required container Alert: #{@settings.objects.containerID}"
|
52
|
+
# return false
|
53
|
+
# @container = jQuery @settings.objects.containerID
|
54
|
+
# setInterval: ->
|
55
|
+
# @debug 'Setting interval?',@settings.autoRemove, 'With delay:',@settings.delayRemove
|
56
|
+
# _this = @
|
57
|
+
# @interval = setInterval(->
|
58
|
+
# _this.destroy()
|
59
|
+
# , @settings.delayRemove) if @settings.autoRemove
|
60
|
+
# setEvents: ->
|
61
|
+
# @debug 'Setting all events'
|
62
|
+
# _this = @
|
63
|
+
# @close.bind "click#{@namespace}", ->
|
64
|
+
# _this.debug 'Dispatch event clickon close button'
|
65
|
+
# _this.destroy()
|
66
|
+
#
|
67
|
+
# Lol.alert =
|
68
|
+
# # private:
|
69
|
+
# # dataset:
|
70
|
+
#
|
71
|
+
# defaults:
|
72
|
+
# autoRemove : true
|
73
|
+
# type : 'success' # Options success | error | warning | info
|
74
|
+
# message : null
|
75
|
+
# delayRemove: 7000
|
76
|
+
# objects :
|
77
|
+
# containerID: '#alerts'
|
78
|
+
# classes:
|
79
|
+
# container: 'alerts'
|
80
|
+
# success : 'alert-success'
|
81
|
+
# error : 'alert-error'
|
82
|
+
# warning : 'alert-warning'
|
83
|
+
# info : 'alert-info'
|
@@ -0,0 +1,35 @@
|
|
1
|
+
describe 'Lol.Core', ->
|
2
|
+
core = null
|
3
|
+
|
4
|
+
beforeEach ->
|
5
|
+
core = new Lol.Core()
|
6
|
+
|
7
|
+
it 'should have standards settings', ->
|
8
|
+
expect(core.id).toEqual(null)
|
9
|
+
expect(core.debugIndex).toEqual(1)
|
10
|
+
expect(core.debugPrefix).toEqual(null)
|
11
|
+
|
12
|
+
it 'should be able to verify if there is a library jQuery', ->
|
13
|
+
expect(core.verifyJQuery()).toEqual(true)
|
14
|
+
|
15
|
+
it 'should generate its ID', ->
|
16
|
+
id = core.id
|
17
|
+
core.generateId()
|
18
|
+
expect(core.id).not.toEqual(id)
|
19
|
+
|
20
|
+
it 'should be able to create an unique ID', ->
|
21
|
+
id = core.id
|
22
|
+
core.generateId()
|
23
|
+
expect(core.id).not.toEqual(id)
|
24
|
+
|
25
|
+
it 'should be able to treat a object', ->
|
26
|
+
core.generateId()
|
27
|
+
expect(Lol.Utils.getObject core.id).toEqual(core)
|
28
|
+
core.destroy()
|
29
|
+
expect(Lol.Utils.getObject core.id).toEqual(null)
|
30
|
+
|
31
|
+
it 'should be able to print messages on console', ->
|
32
|
+
index = core.debugIndex
|
33
|
+
core.debug()
|
34
|
+
expect(core.debugIndex).not.toEqual(index)
|
35
|
+
|
@@ -0,0 +1,14 @@
|
|
1
|
+
describe 'Lol.Debug', ->
|
2
|
+
|
3
|
+
it 'should be an object', ->
|
4
|
+
expect(Lol.Debug).toEqual(jasmine.any Object)
|
5
|
+
|
6
|
+
it 'should have set standards', ->
|
7
|
+
expect(Lol.Debug.paramsDefault.debug).toEqual(false)
|
8
|
+
expect(Lol.Debug.paramsDefault.prefix).toEqual('Lol_Debug')
|
9
|
+
expect(Lol.Debug.paramsDefault.object_id).toEqual('')
|
10
|
+
expect(Lol.Debug.paramsDefault.index).toEqual(1)
|
11
|
+
expect(Lol.Debug.paramsDefault.messages).toEqual([])
|
12
|
+
|
13
|
+
it 'should have a function of impression', ->
|
14
|
+
expect(typeof Lol.Debug.print).toEqual('function')
|
@@ -0,0 +1,130 @@
|
|
1
|
+
describe 'Lol.Lang', ->
|
2
|
+
|
3
|
+
it 'should have a translation function', ->
|
4
|
+
expect(Lol.t).toBeDefined()
|
5
|
+
|
6
|
+
describe 'Lol.Lang.en-us', ->
|
7
|
+
|
8
|
+
beforeEach ->
|
9
|
+
Lol.I18n.language = 'en-us'
|
10
|
+
|
11
|
+
it 'should have a standard for the common', ->
|
12
|
+
expect(Lol.t 'search').toEqual('search')
|
13
|
+
|
14
|
+
it 'should have a standard for the buttons', ->
|
15
|
+
expect(Lol.t 'OK').toEqual('OK')
|
16
|
+
expect(Lol.t 'CANCEL').toEqual('CANCEL')
|
17
|
+
expect(Lol.t 'YES').toEqual('YES')
|
18
|
+
expect(Lol.t 'NO').toEqual('NO')
|
19
|
+
|
20
|
+
it 'should have a standard for the datatable', ->
|
21
|
+
expect(Lol.t 'datatable_oAria_sSortAscending').toEqual(': activate to sort column ascending')
|
22
|
+
expect(Lol.t 'datatable_oAria_sSortDescending').toEqual(': activate to sort column descending')
|
23
|
+
expect(Lol.t 'datatable_oPaginate_sFirst').toEqual('First')
|
24
|
+
expect(Lol.t 'datatable_oPaginate_sLast').toEqual('Last')
|
25
|
+
expect(Lol.t 'datatable_oPaginate_sNext').toEqual('Next')
|
26
|
+
expect(Lol.t 'datatable_oPaginate_sPrevious').toEqual('Previous')
|
27
|
+
expect(Lol.t 'datatable_sEmptyTable').toEqual('No data available in table')
|
28
|
+
expect(Lol.t 'datatable_sInfo').toEqual('Showing _START_ to _END_ of _TOTAL_ entries')
|
29
|
+
expect(Lol.t 'datatable_sInfoEmpty').toEqual('Showing 0 to 0 of 0 entries')
|
30
|
+
expect(Lol.t 'datatable_sInfoFiltered').toEqual('(filtered from _MAX_ total entries)')
|
31
|
+
expect(Lol.t 'datatable_sInfoPostFix').toEqual('')
|
32
|
+
expect(Lol.t 'datatable_sInfoThousands').toEqual(',')
|
33
|
+
expect(Lol.t 'datatable_sLengthMenu').toEqual('Show _MENU_ entries')
|
34
|
+
expect(Lol.t 'datatable_sLoadingRecords').toEqual('Loading...')
|
35
|
+
expect(Lol.t 'datatable_sProcessing').toEqual('Processing...')
|
36
|
+
expect(Lol.t 'datatable_sSearch').toEqual("<i class='icon-search'></i>")
|
37
|
+
expect(Lol.t 'datatable_search').toEqual('search...')
|
38
|
+
expect(Lol.t 'datatable_sUrl').toEqual('')
|
39
|
+
expect(Lol.t 'datatable_sZeroRecords').toEqual('No matching records found')
|
40
|
+
expect(Lol.t 'datatable_view').toEqual('view')
|
41
|
+
expect(Lol.t 'datatable_edit').toEqual('edit')
|
42
|
+
expect(Lol.t 'datatable_delete').toEqual('delete')
|
43
|
+
expect(Lol.t 'datatable_confirm_delete').toEqual('Are you sure you want to delete this record?<br />This operation can not be undone.')
|
44
|
+
expect(Lol.t 'datatable_confirm_delete_title').toEqual('Lol Framework')
|
45
|
+
|
46
|
+
it 'should have a standard for the buttons', ->
|
47
|
+
expect(Lol.t 'date_months_january').toEqual('January')
|
48
|
+
expect(Lol.t 'date_months_february').toEqual('February')
|
49
|
+
expect(Lol.t 'date_months_march').toEqual('March')
|
50
|
+
expect(Lol.t 'date_months_april').toEqual('April')
|
51
|
+
expect(Lol.t 'date_months_may').toEqual('May')
|
52
|
+
expect(Lol.t 'date_months_june').toEqual('June')
|
53
|
+
expect(Lol.t 'date_months_july').toEqual('July')
|
54
|
+
expect(Lol.t 'date_months_august').toEqual('August')
|
55
|
+
expect(Lol.t 'date_months_september').toEqual('September')
|
56
|
+
expect(Lol.t 'date_months_october').toEqual('October')
|
57
|
+
expect(Lol.t 'date_months_november').toEqual('November')
|
58
|
+
expect(Lol.t 'date_months_december').toEqual('December')
|
59
|
+
expect(Lol.t 'date_days_sunday').toEqual('Sunday')
|
60
|
+
expect(Lol.t 'date_days_monday').toEqual('Monday')
|
61
|
+
expect(Lol.t 'date_days_tuesday').toEqual('Tuesday')
|
62
|
+
expect(Lol.t 'date_days_wednesday').toEqual('Wednesday')
|
63
|
+
expect(Lol.t 'date_days_thursday').toEqual('Thursday')
|
64
|
+
expect(Lol.t 'date_days_friday').toEqual('Friday')
|
65
|
+
expect(Lol.t 'date_days_saturday').toEqual('Saturday')
|
66
|
+
|
67
|
+
describe 'Lol.Lang.pt-br', ->
|
68
|
+
|
69
|
+
beforeEach ->
|
70
|
+
Lol.I18n.language = 'pt-br'
|
71
|
+
|
72
|
+
it 'should have an identical alias', ->
|
73
|
+
expect(Lol.i18n['pt-br']).toEqual(Lol.i18n['pt'])
|
74
|
+
|
75
|
+
it 'should have a standard for the common', ->
|
76
|
+
expect(Lol.t 'search').toEqual('pesquisa')
|
77
|
+
|
78
|
+
it 'should have a standard for the buttons', ->
|
79
|
+
expect(Lol.t 'OK').toEqual('OK')
|
80
|
+
expect(Lol.t 'CANCEL').toEqual('CANCELAR')
|
81
|
+
expect(Lol.t 'YES').toEqual('SIM')
|
82
|
+
expect(Lol.t 'NO').toEqual('NÃO')
|
83
|
+
|
84
|
+
it 'should have a standard for the datatable', ->
|
85
|
+
expect(Lol.t 'datatable_oAria_sSortAscending').toEqual(": ativar para classificar coluna ascendente")
|
86
|
+
expect(Lol.t 'datatable_oAria_sSortDescending').toEqual(": ativar para classificar coluna descendente")
|
87
|
+
expect(Lol.t 'datatable_oPaginate_sFirst').toEqual("Primeiro")
|
88
|
+
expect(Lol.t 'datatable_oPaginate_sLast').toEqual("Último")
|
89
|
+
expect(Lol.t 'datatable_oPaginate_sNext').toEqual("Seguinte")
|
90
|
+
expect(Lol.t 'datatable_oPaginate_sPrevious').toEqual("Anterior")
|
91
|
+
expect(Lol.t 'datatable_sEmptyTable').toEqual("Não há dados disponíveis na tabela")
|
92
|
+
expect(Lol.t 'datatable_sInfo').toEqual("Mostrando de _START_ até _END_ de _TOTAL_ registros")
|
93
|
+
expect(Lol.t 'datatable_sInfoEmpty').toEqual("Mostrando de 0 até 0 de 0 registros")
|
94
|
+
expect(Lol.t 'datatable_sInfoFiltered').toEqual("(filtrado de _MAX_ registros no total)")
|
95
|
+
expect(Lol.t 'datatable_sInfoPostFix').toEqual("")
|
96
|
+
expect(Lol.t 'datatable_sInfoThousands').toEqual(",")
|
97
|
+
expect(Lol.t 'datatable_sLengthMenu').toEqual("Mostrar _MENU_ registros")
|
98
|
+
expect(Lol.t 'datatable_sLoadingRecords').toEqual("Carregando...")
|
99
|
+
expect(Lol.t 'datatable_sProcessing').toEqual("Processando...")
|
100
|
+
expect(Lol.t 'datatable_sSearch').toEqual("<i class='icon-search'></i>")
|
101
|
+
expect(Lol.t 'datatable_search').toEqual("buscar")
|
102
|
+
expect(Lol.t 'datatable_sUrl').toEqual("")
|
103
|
+
expect(Lol.t 'datatable_sZeroRecords').toEqual("Não foram encontrados resultados")
|
104
|
+
expect(Lol.t 'datatable_view').toEqual('visualizar')
|
105
|
+
expect(Lol.t 'datatable_edit').toEqual('editar')
|
106
|
+
expect(Lol.t 'datatable_delete').toEqual('remover')
|
107
|
+
expect(Lol.t 'datatable_confirm_delete').toEqual('Você tem certeza que deseja excluir este registro?<br />Esta operação não poderá ser desfeita.')
|
108
|
+
expect(Lol.t 'datatable_confirm_delete_title').toEqual('Lol Framework')
|
109
|
+
|
110
|
+
it 'should have a standard for the buttons', ->
|
111
|
+
expect(Lol.t 'date_months_january').toEqual('Janeiro')
|
112
|
+
expect(Lol.t 'date_months_february').toEqual('Fevereiro')
|
113
|
+
expect(Lol.t 'date_months_march').toEqual('Março')
|
114
|
+
expect(Lol.t 'date_months_april').toEqual('Abril')
|
115
|
+
expect(Lol.t 'date_months_may').toEqual('Maio')
|
116
|
+
expect(Lol.t 'date_months_june').toEqual('Junho')
|
117
|
+
expect(Lol.t 'date_months_july').toEqual('Julho')
|
118
|
+
expect(Lol.t 'date_months_august').toEqual('Agosto')
|
119
|
+
expect(Lol.t 'date_months_september').toEqual('Setembro')
|
120
|
+
expect(Lol.t 'date_months_october').toEqual('Outubro')
|
121
|
+
expect(Lol.t 'date_months_november').toEqual('Novembro')
|
122
|
+
expect(Lol.t 'date_months_december').toEqual('Dezembro')
|
123
|
+
expect(Lol.t 'date_days_sunday').toEqual('Domingo')
|
124
|
+
expect(Lol.t 'date_days_monday').toEqual('Segunda')
|
125
|
+
expect(Lol.t 'date_days_tuesday').toEqual('Terça')
|
126
|
+
expect(Lol.t 'date_days_wednesday').toEqual('Quarta')
|
127
|
+
expect(Lol.t 'date_days_thursday').toEqual('Quinta')
|
128
|
+
expect(Lol.t 'date_days_friday').toEqual('Sexta')
|
129
|
+
expect(Lol.t 'date_days_saturday').toEqual('Sábado')
|
130
|
+
|
@@ -0,0 +1,13 @@
|
|
1
|
+
describe 'Requirements framework', ->
|
2
|
+
|
3
|
+
it 'should have a modification of the Date object', ->
|
4
|
+
expect(Date.parseDate).toBeDefined()
|
5
|
+
|
6
|
+
it 'should have the jquery library', ->
|
7
|
+
expect(jQuery).toBeDefined()
|
8
|
+
|
9
|
+
it 'should have the datatable jquery plugin', ->
|
10
|
+
expect(jQuery.fn.dataTable).toBeDefined()
|
11
|
+
|
12
|
+
it 'should have the browser mobile jquery plugin', ->
|
13
|
+
expect(jQuery.browser.mobile).toBeDefined()
|
@@ -0,0 +1,22 @@
|
|
1
|
+
describe 'Lol.Utils', ->
|
2
|
+
|
3
|
+
it 'should be an object', ->
|
4
|
+
expect(typeof Lol.Utils).toEqual('object')
|
5
|
+
|
6
|
+
it 'should generate unique ids', ->
|
7
|
+
expect(Lol.Utils.uniqid).toBeDefined()
|
8
|
+
expect(Lol.Utils.uniqid()).not.toEqual(Lol.Utils.uniqid())
|
9
|
+
|
10
|
+
it 'should be able to convert objects to string', ->
|
11
|
+
expect(Lol.Utils.toString 123 ).toEqual(jasmine.any String)
|
12
|
+
|
13
|
+
it 'should be able to treat the objects framework', ->
|
14
|
+
obj =
|
15
|
+
id: Lol.Utils.uniqid()
|
16
|
+
expect(Lol.Utils.addObject obj ).toEqual(obj)
|
17
|
+
expect(Lol.Utils.getObject obj.id ).toEqual(obj)
|
18
|
+
expect(Lol.Utils._object_id.hasOwnProperty obj.id ).toEqual(true)
|
19
|
+
expect(Lol.Utils.removeObject obj.id ).toEqual(null)
|
20
|
+
|
21
|
+
it 'should redirect a function', ->
|
22
|
+
expect(Lol.Utils.redirector).toBeDefined()
|
@@ -0,0 +1,42 @@
|
|
1
|
+
Lol.Utils =
|
2
|
+
uniqidSeed: 1
|
3
|
+
uniqid: (prefix='', more_entropy)->
|
4
|
+
# + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
|
5
|
+
# + revised by: Kankrelune (http://www.webfaktory.info/)
|
6
|
+
# % note 1: Uses an internal counter (in php_js global) to avoid collision
|
7
|
+
# * example 1: uniqid();
|
8
|
+
# * returns 1: 'a30285b160c14'
|
9
|
+
# * example 2: uniqid('foo');
|
10
|
+
# * returns 2: 'fooa30285b1cd361'
|
11
|
+
# * example 3: uniqid('bar', true);
|
12
|
+
# * returns 3: 'bara20285b23dfd1.31879087'
|
13
|
+
formatSeed = (seed, reqWidth)->
|
14
|
+
seed = parseInt(seed, 10).toString(16)
|
15
|
+
return seed.slice(seed.length - reqWidth) if reqWidth < seed.length
|
16
|
+
return Array(1 + (reqWidth - seed.length)).join('0') + seed if reqWidth > seed.length
|
17
|
+
seed
|
18
|
+
|
19
|
+
@uniqidSeed = Math.floor(Math.random() * 0x75bcd15) if not @uniqidSeed
|
20
|
+
@uniqidSeed++
|
21
|
+
|
22
|
+
retId = prefix
|
23
|
+
retId += formatSeed(parseInt(new Date().getTime() / 1000, 10), 8)
|
24
|
+
retId += formatSeed(@uniqidSeed, 5)
|
25
|
+
retId += (Math.random() * 10).toFixed(8).toString() if more_entropy
|
26
|
+
retId
|
27
|
+
|
28
|
+
# Convert to string
|
29
|
+
toString: (obj)->
|
30
|
+
new String(obj)
|
31
|
+
|
32
|
+
# Add references objects
|
33
|
+
_object_id: {}
|
34
|
+
addObject: (obj)->
|
35
|
+
@_object_id[obj.id] = obj
|
36
|
+
getObject: (id)->
|
37
|
+
@_object_id[id]
|
38
|
+
removeObject: (id)->
|
39
|
+
@_object_id[id] = null
|
40
|
+
redirector: (url)->
|
41
|
+
window.location = url
|
42
|
+
|