rademade_admin 0.0.3 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/fonts/glyphicons-halflings-regular.eot +0 -0
- data/app/assets/fonts/glyphicons-halflings-regular.svg +229 -0
- data/app/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
- data/app/assets/fonts/glyphicons-halflings-regular.woff +0 -0
- data/app/assets/images/rademade_admin/ico/btn-attach.png +0 -0
- data/app/assets/images/rademade_admin/logos/logo.png +0 -0
- data/app/assets/javascripts/rademade_admin.coffee +8 -4
- data/app/assets/javascripts/rademade_admin/app/app.coffee +2 -1
- data/app/assets/javascripts/rademade_admin/app/common/datetime-picker.coffee +7 -0
- data/app/assets/javascripts/rademade_admin/app/common/dnd-sort.coffee +23 -32
- data/app/assets/javascripts/rademade_admin/app/common/droplist.coffee +8 -0
- data/app/assets/javascripts/rademade_admin/app/common/lang-panel.coffee +6 -0
- data/app/assets/javascripts/rademade_admin/app/common/related-index.coffee +6 -9
- data/app/assets/javascripts/rademade_admin/app/common/sort-list.coffee +10 -14
- data/app/assets/javascripts/rademade_admin/app/common/uploader.coffee +3 -3
- data/app/assets/javascripts/rademade_admin/app/form-popup/initializer.coffee +24 -37
- data/app/assets/javascripts/rademade_admin/app/form-popup/view.coffee +32 -18
- data/app/assets/javascripts/rademade_admin/app/forms/remove.coffee +4 -3
- data/app/assets/javascripts/rademade_admin/app/select2/model.coffee +7 -0
- data/app/assets/javascripts/rademade_admin/app/select2/related/collection-view.coffee +35 -0
- data/app/assets/javascripts/rademade_admin/app/select2/related/collection.coffee +28 -0
- data/app/assets/javascripts/rademade_admin/app/select2/related/model.coffee +15 -0
- data/app/assets/javascripts/rademade_admin/app/select2/related/view.coffee +40 -0
- data/app/assets/javascripts/rademade_admin/app/select2/view.coffee +78 -0
- data/app/assets/javascripts/rademade_admin/form/form-ajax.coffee +48 -0
- data/app/assets/javascripts/rademade_admin/form/form-initializater.coffee +45 -0
- data/app/assets/javascripts/rademade_admin/form/form-validation.coffee +42 -0
- data/app/assets/javascripts/rademade_admin/form/form.coffee +62 -0
- data/app/assets/javascripts/rademade_admin/library/ckeditor/config.js +14 -12
- data/app/assets/stylesheets/{rademade_admin/bootstrap → old/-bootstrap}/bootstrap-overrides.css.erb +0 -0
- data/app/assets/stylesheets/{rademade_admin/bootstrap → old/-bootstrap}/main.scss.erb +0 -0
- data/app/assets/stylesheets/{rademade_admin/detail_admin → old/-detail_admin}/chart-showcase.scss.erb +0 -0
- data/app/assets/stylesheets/{rademade_admin/detail_admin → old/-detail_admin}/datatables.scss.erb +0 -0
- data/app/assets/stylesheets/{rademade_admin/detail_admin → old/-detail_admin}/elements.scss.erb +0 -0
- data/app/assets/stylesheets/{rademade_admin/detail_admin → old/-detail_admin}/error.scss.erb +0 -0
- data/app/assets/stylesheets/{rademade_admin/detail_admin → old/-detail_admin}/form-showcase.scss.erb +0 -0
- data/app/assets/stylesheets/{rademade_admin/detail_admin → old/-detail_admin}/form-wizard.scss.erb +0 -0
- data/app/assets/stylesheets/{rademade_admin/detail_admin → old/-detail_admin}/gallery.scss.erb +0 -0
- data/app/assets/stylesheets/{rademade_admin/detail_admin → old/-detail_admin}/grids.scss.erb +0 -0
- data/app/assets/stylesheets/{rademade_admin/detail_admin → old/-detail_admin}/icons.scss.erb +0 -0
- data/app/assets/stylesheets/{rademade_admin/detail_admin → old/-detail_admin}/index.scss.erb +0 -0
- data/app/assets/stylesheets/{rademade_admin/detail_admin → old/-detail_admin}/layout.scss.erb +0 -0
- data/app/assets/stylesheets/{rademade_admin/detail_admin → old/-detail_admin}/new-user.scss.erb +0 -0
- data/app/assets/stylesheets/{rademade_admin/detail_admin → old/-detail_admin}/personal-info.scss.erb +0 -0
- data/app/assets/stylesheets/{rademade_admin/detail_admin → old/-detail_admin}/popup.scss.erb +0 -0
- data/app/assets/stylesheets/{rademade_admin/detail_admin → old/-detail_admin}/signin.scss.erb +0 -0
- data/app/assets/stylesheets/{rademade_admin/detail_admin → old/-detail_admin}/tables.scss.erb +0 -0
- data/app/assets/stylesheets/{rademade_admin/detail_admin → old/-detail_admin}/ui-elements.scss.erb +0 -0
- data/app/assets/stylesheets/{rademade_admin/detail_admin → old/-detail_admin}/user-list.scss.erb +0 -0
- data/app/assets/stylesheets/{rademade_admin/detail_admin → old/-detail_admin}/user-profile.scss.erb +0 -0
- data/app/assets/stylesheets/{rademade_admin/detail_admin → old/-detail_admin}/web-app-icons.scss.erb +0 -0
- data/app/assets/stylesheets/{rademade_admin/lib → old/-lib}/bootstrap.datepicker.css.erb +0 -0
- data/app/assets/stylesheets/{rademade_admin/lib → old/-lib}/morris.css.erb +0 -0
- data/app/assets/stylesheets/{rademade_admin → old}/base.scss.erb +0 -0
- data/app/assets/stylesheets/{rademade_admin → old}/edit.css +0 -0
- data/app/assets/stylesheets/{rademade_admin → old}/file-upload.scss.erb +0 -0
- data/app/assets/stylesheets/{rademade_admin → old}/notifier.custom.css.erb +0 -0
- data/app/assets/stylesheets/{rademade_admin → old}/scaffolds.scss.erb +0 -0
- data/app/assets/stylesheets/rademade_admin.sass.erb +96 -0
- data/app/assets/stylesheets/rademade_admin/base/main.sass +71 -0
- data/app/assets/stylesheets/rademade_admin/blocks/buttons/main.sass +81 -0
- data/app/assets/stylesheets/rademade_admin/blocks/form/input.sass +29 -0
- data/app/assets/stylesheets/rademade_admin/blocks/form/label.sass +31 -0
- data/app/assets/stylesheets/rademade_admin/blocks/form/select.sass +26 -0
- data/app/assets/stylesheets/rademade_admin/blocks/form/select2.sass +67 -0
- data/app/assets/stylesheets/rademade_admin/blocks/form/table.sass +42 -0
- data/app/assets/stylesheets/rademade_admin/blocks/form/texarea.sass +20 -0
- data/app/assets/stylesheets/rademade_admin/blocks/header/_logo.sass +7 -0
- data/app/assets/stylesheets/rademade_admin/blocks/header/_menu.sass +80 -0
- data/app/assets/stylesheets/rademade_admin/blocks/header/_search.sass +37 -0
- data/app/assets/stylesheets/rademade_admin/blocks/page/content/_main.sass +11 -0
- data/app/assets/stylesheets/rademade_admin/blocks/page/headline/main.sass +44 -0
- data/app/assets/stylesheets/rademade_admin/blocks/page/menu/_main.sass +31 -0
- data/app/assets/stylesheets/rademade_admin/lib/datepicker.sass +373 -0
- data/app/assets/stylesheets/rademade_admin/lib/glyphicon.sass.erb +618 -0
- data/app/assets/stylesheets/rademade_admin/lib/notifier.css.erb +661 -0
- data/app/assets/stylesheets/rademade_admin/lib/uploader.sass +66 -0
- data/app/assets/stylesheets/rademade_admin/mixins/clear.sass +5 -0
- data/app/assets/stylesheets/rademade_admin/mixins/fonts.sass +8 -0
- data/app/assets/stylesheets/rademade_admin/mixins/sprite.sass +7 -0
- data/app/assets/stylesheets/rademade_admin/mixins/text-overflow.sass +6 -0
- data/app/assets/stylesheets/rademade_admin/mixins/user-select.sass +5 -0
- data/app/assets/stylesheets/rademade_admin/modules/breadcrumbs/main.sass +30 -0
- data/app/assets/stylesheets/rademade_admin/modules/errors/error.sass.erb +19 -0
- data/app/assets/stylesheets/rademade_admin/modules/form/main.sass +15 -0
- data/app/assets/stylesheets/rademade_admin/modules/header/main.sass +6 -0
- data/app/assets/stylesheets/rademade_admin/modules/login/_main.sass +79 -0
- data/app/assets/stylesheets/rademade_admin/modules/main-menu/main.sass +0 -0
- data/app/assets/stylesheets/rademade_admin/modules/page/main.sass +16 -0
- data/app/assets/stylesheets/rademade_admin/modules/pagination/main.sass +51 -0
- data/app/assets/stylesheets/rademade_admin/modules/popup/new.sass +18 -0
- data/app/assets/stylesheets/rademade_admin/var/colors.sass +0 -0
- data/app/assets/stylesheets/rademade_admin/var/images.sass +2 -0
- data/app/assets/stylesheets/rademade_admin/var/width.sass +13 -0
- data/app/controllers/rademade_admin/abstract_controller.rb +18 -2
- data/app/controllers/rademade_admin/application_controller.rb +1 -1
- data/app/controllers/rademade_admin/dashboard_controller.rb +1 -1
- data/app/controllers/rademade_admin/file_controller.rb +25 -0
- data/app/controllers/rademade_admin/model_controller.rb +66 -47
- data/app/controllers/rademade_admin/sessions_controller.rb +3 -3
- data/app/helpers/rademade_admin/field_helper.rb +21 -32
- data/app/helpers/rademade_admin/form_helper.rb +57 -27
- data/app/helpers/rademade_admin/menu_helper.rb +12 -5
- data/app/helpers/rademade_admin/uri_helper.rb +50 -62
- data/app/inputs/rademade_admin/date_time_input.rb +13 -0
- data/app/inputs/rademade_admin/file_input.rb +72 -0
- data/app/inputs/rademade_admin/related_select_input.rb +78 -0
- data/app/serializers/autocomplete/link_serializer.rb +6 -4
- data/app/services/linker.rb +8 -14
- data/app/services/login.rb +5 -3
- data/app/services/model_controller/breadcrumbs.rb +36 -0
- data/app/services/model_controller/instance_options.rb +7 -5
- data/app/services/model_controller/model_options.rb +10 -7
- data/app/services/model_controller/notifier.rb +10 -6
- data/app/services/model_controller/templates.rb +4 -3
- data/app/services/relation_service.rb +11 -0
- data/app/services/saver.rb +59 -24
- data/app/services/search/conditions/abstract.rb +15 -14
- data/app/services/search/conditions/autocomplete.rb +11 -9
- data/app/services/search/conditions/list.rb +6 -5
- data/app/services/search/conditions/related_list.rb +17 -13
- data/app/services/search/{conditions/part/where.rb → part/abstract.rb} +7 -9
- data/app/services/search/part/order.rb +17 -0
- data/app/services/search/part/where.rb +19 -0
- data/app/services/sortable_service.rb +27 -27
- data/app/services/template_service.rb +68 -0
- data/app/services/upload/preview_service.rb +86 -0
- data/app/views/layouts/rademade_admin.html.erb +13 -4
- data/app/views/rademade_admin/_blocks/_header.html.erb +35 -28
- data/app/views/rademade_admin/_blocks/_menu.html.erb +20 -23
- data/app/views/rademade_admin/_blocks/_on_page_select.html.erb +15 -0
- data/app/views/rademade_admin/_blocks/_pagination.html.erb +1 -18
- data/app/views/rademade_admin/_blocks/_sub_menu.html.erb +3 -3
- data/app/views/rademade_admin/_blocks/form/_control.html.erb +3 -0
- data/app/views/rademade_admin/_blocks/form/_lang_panel.html.erb +19 -0
- data/app/views/rademade_admin/_blocks/sub_menu/_link.html.erb +6 -5
- data/app/views/rademade_admin/_blocks/table/_head.html.erb +13 -0
- data/app/views/rademade_admin/_layouts/inner.html.erb +21 -33
- data/app/views/rademade_admin/_layouts/inner/form.html.erb +6 -13
- data/app/views/rademade_admin/_layouts/inner/index_table.html.erb +31 -55
- data/app/views/rademade_admin/_layouts/inner/related_index_table.html.erb +26 -54
- data/app/views/rademade_admin/abstract/_form.html.erb +6 -9
- data/app/views/rademade_admin/abstract/edit.html.erb +3 -8
- data/app/views/rademade_admin/abstract/index.html.erb +38 -67
- data/app/views/rademade_admin/abstract/new.html.erb +3 -8
- data/app/views/rademade_admin/abstract/related.html.erb +48 -0
- data/app/views/rademade_admin/dashboard/index.html.erb +4 -5
- data/app/views/rademade_admin/dashboard/login.html.erb +19 -30
- data/config/initializers/carrier_wave/mongoid.rb +48 -0
- data/config/initializers/ckeditor.rb +3 -0
- data/config/initializers/kaminari_route_proxy.rb +16 -0
- data/config/initializers/simple_form.rb +147 -0
- data/config/initializers/simple_form/rademade_component.rb +9 -0
- data/config/initializers/simple_form/wrappers.rb +28 -0
- data/config/locales/rademade_admin.en.yml +28 -0
- data/config/locales/simple_form.en.yml +26 -0
- data/config/routes.rb +1 -2
- data/lib/rademade_admin.rb +7 -5
- data/lib/rademade_admin/bower/performer.rb +1 -1
- data/lib/rademade_admin/breadcrumbs/render/rademade.rb +31 -0
- data/lib/rademade_admin/engine.rb +2 -2
- data/lib/rademade_admin/input/related_select_input/model_data.rb +40 -0
- data/lib/rademade_admin/input/related_select_input/related_list.rb +60 -0
- data/lib/rademade_admin/model/adapter/data.rb +119 -0
- data/lib/rademade_admin/model/adapter/data/active_record.rb +109 -0
- data/lib/rademade_admin/model/adapter/data/mongoid.rb +77 -0
- data/{app/services/search/query_adapter/abstract.rb → lib/rademade_admin/model/adapter/query.rb} +15 -5
- data/lib/rademade_admin/model/adapter/query/active_record.rb +50 -0
- data/lib/rademade_admin/model/adapter/query/mongoid.rb +57 -0
- data/lib/rademade_admin/model/configuration.rb +43 -16
- data/lib/rademade_admin/model/configuration/field_label.rb +16 -0
- data/lib/rademade_admin/model/configuration/fields.rb +47 -21
- data/lib/rademade_admin/model/configuration/fields_labels.rb +31 -0
- data/lib/rademade_admin/model/configuration/form_field.rb +27 -0
- data/lib/rademade_admin/model/configuration/form_fields.rb +18 -0
- data/lib/rademade_admin/model/configuration/list_field.rb +21 -0
- data/lib/rademade_admin/model/configuration/list_fields.rb +18 -0
- data/lib/rademade_admin/model/graph.rb +9 -9
- data/lib/rademade_admin/model/info.rb +53 -68
- data/lib/rademade_admin/model/info/data_item.rb +130 -0
- data/lib/rademade_admin/model/info/data_items.rb +130 -0
- data/lib/rademade_admin/model/info/field.rb +39 -0
- data/lib/rademade_admin/model/info/fields.rb +87 -0
- data/lib/rademade_admin/model/info/relation.rb +49 -0
- data/lib/rademade_admin/model/info/relations.rb +40 -0
- data/lib/rademade_admin/model/info/uploader.rb +16 -0
- data/lib/rademade_admin/model/info/uploaders.rb +35 -0
- data/lib/rademade_admin/model/reflection.rb +38 -9
- data/lib/rademade_admin/routing/mapper.rb +9 -5
- data/lib/rademade_admin/search/searcher.rb +22 -0
- data/lib/rademade_admin/sortable.rb +1 -0
- data/lib/rademade_admin/uploader/photo.rb +1 -0
- data/lib/rademade_admin/user.rb +7 -6
- data/lib/rademade_admin/version.rb +1 -1
- data/lib/tasks/rademade_bower_install.rake +10 -2
- data/lib/templates/erb/scaffold/_form.html.erb +13 -0
- metadata +195 -109
- data/app/assets/javascripts/rademade_admin/app/common/relation-list.coffee +0 -109
- data/app/assets/javascripts/rademade_admin/app/form-popup/collection.coffee +0 -20
- data/app/assets/javascripts/rademade_admin/app/form-popup/model.coffee +0 -4
- data/app/assets/javascripts/rademade_admin/detail_admin/theme.js +0 -56
- data/app/assets/javascripts/rademade_admin/form/form-ajax-submit.coffee +0 -157
- data/app/assets/stylesheets/rademade_admin.scss.erb +0 -19
- data/app/helpers/rademade_admin/name_helper.rb +0 -18
- data/app/helpers/rademade_admin/upload_preview_helper.rb +0 -60
- data/app/inputs/rademade_admin/admin_file_input.rb +0 -71
- data/app/inputs/rademade_admin/admin_select_input.rb +0 -82
- data/app/inputs/rademade_admin/admin_textarea_input.rb +0 -6
- data/app/inputs/rademade_admin/boolean_input.rb +0 -14
- data/app/services/form_builder.rb +0 -4
- data/app/services/search/query_adapter/active_record.rb +0 -45
- data/app/services/search/query_adapter/mongoid.rb +0 -51
- data/app/services/search/searcher.rb +0 -20
- data/app/views/rademade_admin/_blocks/_form_control.html.erb +0 -5
- data/app/views/rademade_admin/abstract/related_index.html.erb +0 -85
- data/config/initializers/devise.rb +0 -251
- data/config/initializers/formtastic.rb +0 -13
- data/lib/rademade_admin/model/data_adapter.rb +0 -64
- data/lib/rademade_admin/model/data_adapter/active_record.rb +0 -59
- data/lib/rademade_admin/model/data_adapter/mongoid.rb +0 -54
- data/lib/rademade_admin/model/reflection/data.rb +0 -48
- data/lib/rademade_admin/model/reflection/uploader.rb +0 -18
@@ -1,109 +0,0 @@
|
|
1
|
-
currentClass = []
|
2
|
-
|
3
|
-
initSelect = ->
|
4
|
-
$(".select-wrapper input[type='hidden']").each ->
|
5
|
-
initItem $(this)
|
6
|
-
|
7
|
-
initItem = ($item) ->
|
8
|
-
url = $item.data('relListUrl')
|
9
|
-
isMultiple = $item.data('relMultiple')
|
10
|
-
|
11
|
-
$item.select2(
|
12
|
-
multiple : isMultiple
|
13
|
-
placeholder : 'Enter search phrase'
|
14
|
-
|
15
|
-
initSelection : (element, callback) ->
|
16
|
-
ids = element.val().replace(/\s*/g, '').split(',')
|
17
|
-
$.getJSON(url, {search : {id : ids}}).done (data) ->
|
18
|
-
data = if isMultiple then data else data[0]
|
19
|
-
$item.select2('enable', true)
|
20
|
-
callback(data)
|
21
|
-
addTable($item) if isMultiple
|
22
|
-
hideTags()
|
23
|
-
|
24
|
-
ajax :
|
25
|
-
url : url
|
26
|
-
dataType : 'json'
|
27
|
-
data : (term) -> {q : term}
|
28
|
-
results : (data) -> {results : data}
|
29
|
-
).unbind('change').bind 'change', (e) ->
|
30
|
-
$select = $(this)
|
31
|
-
$table = $select.siblings('.select2-items-list')
|
32
|
-
addTable($select) if $table.length is 0
|
33
|
-
addItem(e.added, $table)
|
34
|
-
hideTags()
|
35
|
-
$item.select2('enable', false) if $item.val().length > 0
|
36
|
-
|
37
|
-
hideTags = ->
|
38
|
-
$('.select2-search-choice').hide()
|
39
|
-
|
40
|
-
addTable = ($item) ->
|
41
|
-
$parent = $item.parent()
|
42
|
-
$parent.children('.select2-items-list').remove()
|
43
|
-
$parent.append('<ul class="select2-items-list"></ul>')
|
44
|
-
|
45
|
-
$table = $parent.children('.select2-items-list')
|
46
|
-
|
47
|
-
$($item.select2('data')).each ->
|
48
|
-
addItem this, $table
|
49
|
-
|
50
|
-
$table.sortable
|
51
|
-
stop : ->
|
52
|
-
changeSelectValue($table, $item)
|
53
|
-
|
54
|
-
$table.disableSelection()
|
55
|
-
|
56
|
-
addItem = (item, $table) ->
|
57
|
-
$table.append(
|
58
|
-
"<li data-id='#{item.id}'>
|
59
|
-
<span>#{item.text}</span>
|
60
|
-
<button data-edit='#{item.edit_url}'>Edit</button>
|
61
|
-
<button data-remove>Delete</button>
|
62
|
-
</li>"
|
63
|
-
)
|
64
|
-
|
65
|
-
$("li[data-id='#{item.id}'] [data-remove]").unbind('click').bind 'click', (e) ->
|
66
|
-
e.preventDefault()
|
67
|
-
removeItem($(e.currentTarget).closest('li'), $table) if confirm 'Вы действительно хотите удалить данную модель?'
|
68
|
-
|
69
|
-
removeItem = ($li, $table) ->
|
70
|
-
$li.remove()
|
71
|
-
changeSelectValue $table, $table.siblings('.select-wrapper')
|
72
|
-
|
73
|
-
changeSelectValue = ($table, $input) ->
|
74
|
-
itemsList = []
|
75
|
-
|
76
|
-
$table.children('li').each ->
|
77
|
-
$li = $(this)
|
78
|
-
itemsList.push({ id : $li.data('id'), text : $li.text() })
|
79
|
-
|
80
|
-
$input.select2('data', itemsList)
|
81
|
-
hideTags()
|
82
|
-
|
83
|
-
getId = (data) ->
|
84
|
-
if data.data._id
|
85
|
-
return data.data._id.$oid
|
86
|
-
else
|
87
|
-
return data.data.id
|
88
|
-
|
89
|
-
selectOnSubmit = (e, modelClassName, data) ->
|
90
|
-
dataId = getId(data)
|
91
|
-
$select = $(".select-wrapper [data-rel-class='#{modelClassName}']")
|
92
|
-
newData = []
|
93
|
-
if $select.data('relMultiple')
|
94
|
-
newData.push($select.val()) if $select.val()
|
95
|
-
newData.push(dataId)
|
96
|
-
else
|
97
|
-
newData = dataId
|
98
|
-
$select.select2('destroy')
|
99
|
-
$select.val(newData)
|
100
|
-
initItem($select)
|
101
|
-
|
102
|
-
selectCurrent = (event, data) ->
|
103
|
-
currentClass.push(data)
|
104
|
-
|
105
|
-
|
106
|
-
$ ->
|
107
|
-
$(document)
|
108
|
-
.on('ready page:load init-select', initSelect)
|
109
|
-
.on('form-saved', selectOnSubmit)
|
@@ -1,20 +0,0 @@
|
|
1
|
-
class @FormPopup.Collection extends Backbone.Collection
|
2
|
-
|
3
|
-
lastModel : undefined
|
4
|
-
|
5
|
-
initialize : () ->
|
6
|
-
@on 'add', @showModel
|
7
|
-
@on 'remove', @onModelRemove
|
8
|
-
|
9
|
-
getModelWithClass : (modelClassName) ->
|
10
|
-
@findWhere
|
11
|
-
modelClassName : modelClassName
|
12
|
-
|
13
|
-
showModel : (model) =>
|
14
|
-
@lastModel.trigger('hide') if @lastModel
|
15
|
-
@lastModel = model
|
16
|
-
model.trigger 'show'
|
17
|
-
|
18
|
-
onModelRemove : () =>
|
19
|
-
@lastModel = @last()
|
20
|
-
@lastModel.trigger('show') if @lastModel
|
@@ -1,56 +0,0 @@
|
|
1
|
-
$(function(){
|
2
|
-
|
3
|
-
function setupTheme() {
|
4
|
-
|
5
|
-
var $menu = $("#sidebar-nav");
|
6
|
-
|
7
|
-
// sidebar menu dropdown toggle
|
8
|
-
$("#dashboard-menu .dropdown-toggle").click(function (e) {
|
9
|
-
e.preventDefault();
|
10
|
-
var $item = $(this).parent();
|
11
|
-
$item.toggleClass("active");
|
12
|
-
if ($item.hasClass("active")) {
|
13
|
-
$item.find(".submenu").slideDown("fast");
|
14
|
-
} else {
|
15
|
-
$item.find(".submenu").slideUp("fast");
|
16
|
-
}
|
17
|
-
});
|
18
|
-
|
19
|
-
|
20
|
-
// mobile side-menu slide toggler
|
21
|
-
$("body").click(function () {
|
22
|
-
if ($(this).hasClass("menu")) {
|
23
|
-
$(this).removeClass("menu");
|
24
|
-
}
|
25
|
-
});
|
26
|
-
|
27
|
-
$menu.click(function (e) {
|
28
|
-
e.stopPropagation();
|
29
|
-
});
|
30
|
-
|
31
|
-
$("#menu-toggler").click(function (e) {
|
32
|
-
e.stopPropagation();
|
33
|
-
$("body").toggleClass("menu");
|
34
|
-
});
|
35
|
-
|
36
|
-
$(window).resize(function () {
|
37
|
-
$(this).width() > 769 && $("body.menu").removeClass("menu")
|
38
|
-
});
|
39
|
-
|
40
|
-
|
41
|
-
// build all tooltips from data-attributes
|
42
|
-
$("[data-toggle='tooltip']").each(function (index, el) {
|
43
|
-
$(el).tooltip({
|
44
|
-
placement: $(this).data("placement") || 'top'
|
45
|
-
});
|
46
|
-
});
|
47
|
-
|
48
|
-
|
49
|
-
// quirk to fix dark skin sidebar menu because of B3 border-box
|
50
|
-
if ($menu.height() > $(".content").height()) {
|
51
|
-
$("html").addClass("small");
|
52
|
-
}
|
53
|
-
}
|
54
|
-
|
55
|
-
$(document).on('ready page:load', setupTheme);
|
56
|
-
});
|
@@ -1,157 +0,0 @@
|
|
1
|
-
window.FormAjaxSubmit = ($form) ->
|
2
|
-
@_$form = $form
|
3
|
-
@_validationObject = null
|
4
|
-
@_sending = false
|
5
|
-
|
6
|
-
(->
|
7
|
-
|
8
|
-
#@trigger ['ajax-before-submit', 'ajax-submit-done', 'ajax-submit-fail', 'ajax-submit-always']
|
9
|
-
|
10
|
-
FormAjaxSubmit::init = ->
|
11
|
-
|
12
|
-
validation_data = @__getValidationData()
|
13
|
-
@__loadValidationRules validation_data
|
14
|
-
@_validationObject = @_$form.validate(validation_data)
|
15
|
-
|
16
|
-
FormAjaxSubmit::displayFieldErrors = (errors) ->
|
17
|
-
messages = {}
|
18
|
-
|
19
|
-
$.each errors, (field, message) =>
|
20
|
-
messages['data[' + field + ']'] = message
|
21
|
-
|
22
|
-
unless $.isEmptyObject(messages)
|
23
|
-
try
|
24
|
-
@_validationObject.showErrors messages
|
25
|
-
catch e
|
26
|
-
@displayGlobalErrors messages
|
27
|
-
return true
|
28
|
-
false
|
29
|
-
|
30
|
-
FormAjaxSubmit::displayGlobalErrors = (errors) ->
|
31
|
-
$.each errors, (i, error) ->
|
32
|
-
#todo show global errors
|
33
|
-
|
34
|
-
|
35
|
-
FormAjaxSubmit::.__loadValidationRules = (validation_data) ->
|
36
|
-
#TODO load custom validation
|
37
|
-
|
38
|
-
|
39
|
-
FormAjaxSubmit::__getValidationData = ->
|
40
|
-
_self = this
|
41
|
-
|
42
|
-
highlight: (element) ->
|
43
|
-
$(element).parent().removeClass('success').addClass 'error'
|
44
|
-
|
45
|
-
unhighlight: (element) ->
|
46
|
-
$(element).parent().removeClass('error').addClass 'success'
|
47
|
-
|
48
|
-
submitHandler: ->
|
49
|
-
return if _self._sending
|
50
|
-
lazySubmitHandler = -> _self._submitHandler()
|
51
|
-
if _self.handlerExist('ajax-before-submit')
|
52
|
-
_self.trigger('ajax-before-submit', [ lazySubmitHandler ])
|
53
|
-
else
|
54
|
-
lazySubmitHandler.call()
|
55
|
-
return false
|
56
|
-
|
57
|
-
|
58
|
-
FormAjaxSubmit::__processFormError = (data) ->
|
59
|
-
showFieldErrors = @displayFieldErrors(data.errors)
|
60
|
-
console.log showFieldErrors unless showFieldErrors
|
61
|
-
|
62
|
-
FormAjaxSubmit::__removeFormErrors = ->
|
63
|
-
@_$form.find('.error-message').remove()
|
64
|
-
|
65
|
-
FormAjaxSubmit::_submitHandler = ->
|
66
|
-
for instance of CKEDITOR.instances
|
67
|
-
CKEDITOR.instances[instance].updateElement()
|
68
|
-
|
69
|
-
@_sending = true
|
70
|
-
_self = this
|
71
|
-
items = @_$form.serializeObject()
|
72
|
-
|
73
|
-
# Workaround for select2 values serialization
|
74
|
-
# It finds all 'array' members of data hash,
|
75
|
-
# and splits their values by ',', cleaning all
|
76
|
-
# non-space characters.
|
77
|
-
#todo extract. All class need super refactoring. Sergey, you can do it :)
|
78
|
-
for memb of items.data
|
79
|
-
array = items.data[memb]
|
80
|
-
if $.isArray(array)
|
81
|
-
newArray = []
|
82
|
-
|
83
|
-
for val in array
|
84
|
-
cleanVal = val.replace(/\s+/g,'')
|
85
|
-
if cleanVal.length > 0
|
86
|
-
newArray = $.merge(newArray, cleanVal.split(','))
|
87
|
-
|
88
|
-
items.data[memb] = if newArray.length is 0 then [''] else newArray
|
89
|
-
|
90
|
-
input_method = @_$form.find('input[name="_method"]')
|
91
|
-
items['_method'] = input_method.val() if input_method instanceof jQuery
|
92
|
-
|
93
|
-
$.ajax(
|
94
|
-
url: @_$form.attr('action')
|
95
|
-
type: @_$form.attr('method')
|
96
|
-
data: items
|
97
|
-
dataType: 'json'
|
98
|
-
).done((data) ->
|
99
|
-
_self.trigger('ajax-submit-done', [data])
|
100
|
-
$(document).trigger('ajax-submit-done', [data]) #rm_todo remove global events
|
101
|
-
_self.__removeFormErrors()
|
102
|
-
).fail((response) ->
|
103
|
-
try
|
104
|
-
data = JSON.parse( response.responseText )
|
105
|
-
_self.trigger('ajax-submit-fail', [data])
|
106
|
-
_self.__processFormError( data )
|
107
|
-
#rm_todo error catching.
|
108
|
-
#rm_todo extract fail process method
|
109
|
-
).always((response) ->
|
110
|
-
data = if (response.responseJSON) then response.responseJSON else response
|
111
|
-
window.notifier.notify(message: data.message) if data.message
|
112
|
-
_self.trigger('ajax-submit-always', [data])
|
113
|
-
_self._sending = false
|
114
|
-
)
|
115
|
-
|
116
|
-
FormAjaxSubmit::trigger = ->
|
117
|
-
@_$form.triggerHandler.apply(@_$form, arguments)
|
118
|
-
|
119
|
-
FormAjaxSubmit::handlerExist = (name)->
|
120
|
-
jQuery._data( @_$form[0] ).events[ name ]
|
121
|
-
|
122
|
-
@
|
123
|
-
)()
|
124
|
-
|
125
|
-
formatingErrors = ->
|
126
|
-
$.validator.setDefaults showErrors: (errorMap, errorList) ->
|
127
|
-
|
128
|
-
$.each errorList, (index, error) ->
|
129
|
-
|
130
|
-
$(error.element).parent().children('.error-message').remove()
|
131
|
-
|
132
|
-
if $.isArray(error.message)
|
133
|
-
message = error.message.join('<br>')
|
134
|
-
else
|
135
|
-
message = error.message
|
136
|
-
|
137
|
-
notify = $([
|
138
|
-
'<span class="error-message">'
|
139
|
-
message
|
140
|
-
'<i class="ico error-buble"></i>'
|
141
|
-
'</span>'
|
142
|
-
].join(''))
|
143
|
-
|
144
|
-
$(error.element).after notify
|
145
|
-
return
|
146
|
-
|
147
|
-
return
|
148
|
-
|
149
|
-
setupFormSubmit = ->
|
150
|
-
|
151
|
-
formatingErrors.call()
|
152
|
-
|
153
|
-
$('form').each (i, form) ->
|
154
|
-
(new FormAjaxSubmit($(form))).init()
|
155
|
-
|
156
|
-
$ ->
|
157
|
-
$(document).on 'ready page:load', setupFormSubmit
|
@@ -1,19 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
*= require jquery-fileupload/css/jquery.fileupload-ui
|
3
|
-
*= require select2/select2
|
4
|
-
*= require magnific-popup/dist/magnific-popup
|
5
|
-
*= require bootstrap/dist/css/bootstrap
|
6
|
-
*= require jquery-ui/themes/base/core
|
7
|
-
*= require jquery-ui/themes/base/slider
|
8
|
-
*= require uniform/themes/default/css/uniform.default
|
9
|
-
*= require_tree ./rademade_admin
|
10
|
-
*/
|
11
|
-
|
12
|
-
.cke_chrome {
|
13
|
-
width: 76% !important;
|
14
|
-
overflow: hidden;
|
15
|
-
}
|
16
|
-
|
17
|
-
#sidebar-nav #dashboard-menu ul.submenu {
|
18
|
-
margin-left: -7px;
|
19
|
-
}
|
@@ -1,18 +0,0 @@
|
|
1
|
-
# -*- encoding : utf-8 -*-
|
2
|
-
module RademadeAdmin::NameHelper
|
3
|
-
|
4
|
-
def admin_list_name(model_info = @model_info, suffix = true)
|
5
|
-
list_name = model_info.item_name
|
6
|
-
if suffix
|
7
|
-
list_name += ' list'
|
8
|
-
else
|
9
|
-
list_name = list_name.pluralize
|
10
|
-
end
|
11
|
-
list_name
|
12
|
-
end
|
13
|
-
|
14
|
-
def admin_add_name(model_info = @model_info)
|
15
|
-
"Add #{model_info.item_name.downcase}"
|
16
|
-
end
|
17
|
-
|
18
|
-
end
|
@@ -1,60 +0,0 @@
|
|
1
|
-
# -*- encoding : utf-8 -*-
|
2
|
-
module RademadeAdmin::UploadPreviewHelper
|
3
|
-
|
4
|
-
include ActionView::Helpers::TagHelper
|
5
|
-
include ActionView::Context
|
6
|
-
|
7
|
-
#@param uploader [CarrierWave::Uploader::Base]
|
8
|
-
def file_preview_html(uploader)
|
9
|
-
content_tag(:div, :class => 'image-preview-wrapper') do
|
10
|
-
if uploader.blank?
|
11
|
-
empty_file_html(uploader)
|
12
|
-
else
|
13
|
-
uploaded_file_html(uploader)
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
def empty_file_html(uploader)
|
19
|
-
content_tag(:span, 'File not chosen', {
|
20
|
-
:class => 'no-file'
|
21
|
-
})
|
22
|
-
end
|
23
|
-
|
24
|
-
def uploaded_file_html(uploader)
|
25
|
-
included_modules = uploader.class.ancestors
|
26
|
-
if included_modules.include? RademadeAdmin::Uploader::Photo
|
27
|
-
uploaded_image_preview(uploader)
|
28
|
-
elsif included_modules.include? RademadeAdmin::Uploader::Video
|
29
|
-
uploaded_video_preview(uploader)
|
30
|
-
else
|
31
|
-
uploaded_file_default_preview(uploader)
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
def uploaded_image_preview(uploader)
|
36
|
-
content_tag(:img, '', {
|
37
|
-
:src => uploader.resize(200, 200),
|
38
|
-
:class => 'image-preview',
|
39
|
-
:width => 200,
|
40
|
-
:height => 200
|
41
|
-
})
|
42
|
-
end
|
43
|
-
|
44
|
-
def uploaded_video_preview(uploader)
|
45
|
-
content_tag(:img, '', {
|
46
|
-
:src => uploader.thumb_path,
|
47
|
-
:class => 'video-preview',
|
48
|
-
:width => 300
|
49
|
-
})
|
50
|
-
end
|
51
|
-
|
52
|
-
def uploaded_file_default_preview(uploader)
|
53
|
-
file_path = uploader.file.file
|
54
|
-
text = File.basename(file_path) + ', ' + RademadeAdmin::FileInfoFormatter.format_size(File.size(file_path))
|
55
|
-
content_tag(:span, text, {
|
56
|
-
:class => 'file-uploaded'
|
57
|
-
})
|
58
|
-
end
|
59
|
-
|
60
|
-
end
|