vue_crud 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aca8b5b76490166baef0e5a1151e9386142ffc3b
|
4
|
+
data.tar.gz: 409941cd5b60b0f50127b2bc3b4c03068793821f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6e935c7200e37d4f8892408d83d8292802e3adea3c25cfdf17ee34c6f5f5cffefb37125dbcd73e92733d0fb162d2d18155dc43e96dd2fb41929859038661a3ac
|
7
|
+
data.tar.gz: 8fa29bba092322022135227752205aa1a27e58f1b0f43c12539f402fea0501d34798aa3a0e2b6f77c0ce752de3a47e5c680590b58908e267a8d52479f68ebded
|
@@ -1,6 +1,8 @@
|
|
1
1
|
<script type="text/javascript">
|
2
|
+
if(column_type === undefined) var column_type = 'card';
|
3
|
+
if(suffix === undefined) var suffix = '.json';
|
4
|
+
if(countOfPage === undefined) var countOfPage = 9;
|
2
5
|
$(document).ready(function() {
|
3
|
-
var column_type = 'card';
|
4
6
|
$('.vue_form_for_new').html($('#vue_form').html());
|
5
7
|
var models = $($('#models-' + column_type).html());
|
6
8
|
models.find('.custom_models').html(
|
@@ -18,11 +20,11 @@ $(document).ready(function() {
|
|
18
20
|
models.find('.custom_modal_action').html(
|
19
21
|
$('#custom_modal_action').html()
|
20
22
|
);
|
21
|
-
|
22
23
|
$('#models-' + column_type).html(models);
|
23
24
|
vue_init({
|
24
25
|
column_type: column_type,
|
25
|
-
suffix:
|
26
|
+
suffix: suffix,
|
27
|
+
countOfPage: countOfPage
|
26
28
|
});
|
27
29
|
$('.filter .ui.dropdown').dropdown();
|
28
30
|
});
|
@@ -75,6 +77,10 @@ $(document).ready(function() {
|
|
75
77
|
<th v-for="attribute in info.model_attributes" v-if="attribute.visible" :class="{highlight: attribute.model_prefix + '.' + attribute.name == model_prefix + '.' + selected_attribute}">
|
76
78
|
{{ attribute.display_name }}
|
77
79
|
</th>
|
80
|
+
<th>
|
81
|
+
Action
|
82
|
+
</th>
|
83
|
+
<th></th>
|
78
84
|
</tr>
|
79
85
|
</thead>
|
80
86
|
<tbody>
|
@@ -83,7 +89,7 @@ $(document).ready(function() {
|
|
83
89
|
</tbody>
|
84
90
|
<tfoot>
|
85
91
|
<tr>
|
86
|
-
<th :colspan="info.model_attributes.length">
|
92
|
+
<th :colspan="info.model_attributes.length + 2">
|
87
93
|
<div class="ui right floated pagination menu">
|
88
94
|
<a class="item" @click.prevent="setPage(currentPage-1)" :class="{'disabled': (currentPage == '1')}">
|
89
95
|
<
|
@@ -118,17 +124,59 @@ $(document).ready(function() {
|
|
118
124
|
<!-- NOTE: Templates -->
|
119
125
|
<script type="text/x-template" id="models-table">
|
120
126
|
<tr>
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
127
|
+
<td v-for="attribute in info.model_attributes" v-if="attribute.visible" :class="{highlight: attribute.model_prefix + '.' + attribute.name == selected_attribute}">
|
128
|
+
<p v-if="attribute.model_prefix">
|
129
|
+
<span v-if="attribute.type != 'img'">
|
130
|
+
{{ model[attribute.model_prefix][attribute.name] }}
|
131
|
+
</span>
|
132
|
+
<span v-else>
|
133
|
+
<img :src="model[attribute.model_prefix][attribute.name]" />
|
134
|
+
</span>
|
135
|
+
</p>
|
136
|
+
<p v-else>
|
137
|
+
<span v-if="attribute.type != 'img'">
|
138
|
+
{{ model[attribute.name] }}
|
139
|
+
</span>
|
140
|
+
<span v-else>
|
141
|
+
<img :src="model[attribute.name]" />
|
142
|
+
</span>
|
143
|
+
</p>
|
144
|
+
</td>
|
145
|
+
<td style="position: relative;">
|
146
|
+
<div class="ui modal" :id="'editModal_' + model.id">
|
147
|
+
<div class="ui inverted dimmer">
|
148
|
+
<div class="ui indeterminate text loader">Progressing</div>
|
149
|
+
</div>
|
150
|
+
<div class="header">Update {{ info.titles.title }}</div>
|
151
|
+
<div class="content">
|
152
|
+
<!-- NOTE: Not customMode -->
|
153
|
+
<div v-show="!customMode" class="vue_form_for_edit"></div>
|
154
|
+
<!-- NOTE: Is customMode -->
|
155
|
+
<!-- NOTE: Custom modal body -->
|
156
|
+
<div v-show="customMode"><div class="custom_modal_body"></div></div>
|
157
|
+
</div>
|
158
|
+
<div class="actions">
|
159
|
+
<button class="ui basic gray cancel button">Cancel</button>
|
160
|
+
<button @click="updateModel" class="ui button blue" v-show="!customMode">Update</button>
|
161
|
+
<!-- NOTE: Custom modal action -->
|
162
|
+
<div class="inline-block custom_modal_action"></div>
|
163
|
+
</div>
|
164
|
+
</div>
|
165
|
+
<a @click="updateModel(false)" onclick="return false" class="ui orange right corner label" v-show="modified" title="您有尚未儲存的變更">
|
166
|
+
<i class="save icon"></i>
|
167
|
+
</a>
|
168
|
+
<a class="ui green right corner label" v-show="is_success" title="儲存成功">
|
169
|
+
<i class="check icon"></i>
|
170
|
+
</a>
|
171
|
+
<!-- NOTE: Custom action -->
|
172
|
+
<div class="inline-block custom_action"></div>
|
173
|
+
<div class="ui blue button" :data-modal="'#editModal_' + model.id">Edit</div>
|
174
|
+
<div @click="deleteModel" class="ui basic red button" v-show="!deleteMode">Delete</div>
|
175
|
+
</td>
|
176
|
+
<td :colspan="info.model_attributes.length + 1">
|
177
|
+
<!-- NOTE: Custom models -->
|
178
|
+
<div class="custom_models"></div>
|
179
|
+
</td>
|
132
180
|
</tr>
|
133
181
|
</script>
|
134
182
|
<script type="text/x-template" id="models-card">
|
@@ -144,10 +192,20 @@ $(document).ready(function() {
|
|
144
192
|
<div class="event">
|
145
193
|
<div class="content">
|
146
194
|
<div class="summary" :class="{highlight: attribute.model_prefix + '.' + attribute.name == selected_attribute}" v-if="attribute.model_prefix">
|
147
|
-
|
195
|
+
<span v-if="attribute.type != 'img'">
|
196
|
+
{{ attribute.display_name }}: {{ model[attribute.model_prefix][attribute.name] }}
|
197
|
+
</span>
|
198
|
+
<span v-else>
|
199
|
+
<img :src="model[attribute.model_prefix][attribute.name]" />
|
200
|
+
</span>
|
148
201
|
</div>
|
149
202
|
<div class="summary" :class="{highlight: attribute.model_prefix + '.' + attribute.name == selected_attribute}" v-else>
|
150
|
-
|
203
|
+
<span v-if="attribute.type != 'img'">
|
204
|
+
{{ attribute.display_name }}: {{ model[attribute.name] }}
|
205
|
+
</span>
|
206
|
+
<span v-else>
|
207
|
+
<img :src="model[attribute.name]" />
|
208
|
+
</span>
|
151
209
|
</div>
|
152
210
|
</div>
|
153
211
|
</div>
|
data/lib/vue_crud/version.rb
CHANGED
@@ -44,7 +44,8 @@ function getParameterByName(name) {
|
|
44
44
|
function vue_init(params = {}) {
|
45
45
|
var default_options = {
|
46
46
|
suffix: '.json',
|
47
|
-
column_type: 'card'
|
47
|
+
column_type: 'card',
|
48
|
+
countOfPage: 9
|
48
49
|
}
|
49
50
|
var options = $.extend(true, {}, default_options, params)
|
50
51
|
Vue.filter('datetime', function (value) {
|
@@ -150,7 +151,7 @@ function vue_init(params = {}) {
|
|
150
151
|
mixins: [root_mixin],
|
151
152
|
el: '#vue_crud',
|
152
153
|
data: {
|
153
|
-
column_type: options.column_type,
|
154
|
+
column_type: options.column_type || 'card',
|
154
155
|
models: [],
|
155
156
|
info: {
|
156
157
|
url_prefix: '',
|
@@ -161,7 +162,7 @@ function vue_init(params = {}) {
|
|
161
162
|
model: {},
|
162
163
|
errors: {},
|
163
164
|
progress: '0',
|
164
|
-
countOfPage: 9,
|
165
|
+
countOfPage: options.countOfPage || 9,
|
165
166
|
currentPage: getParameterByName("p") || 1,
|
166
167
|
searchQuery: getParameterByName("q"),
|
167
168
|
filteredModelCount: null,
|
@@ -9,13 +9,26 @@
|
|
9
9
|
border-radius: 0;
|
10
10
|
height: 10px;
|
11
11
|
}
|
12
|
+
.event .content {
|
13
|
+
width: 100%;
|
14
|
+
}
|
12
15
|
#form-progress {
|
13
16
|
position: fixed;
|
14
17
|
top: -9999px;
|
15
18
|
}
|
19
|
+
.label .icon:before {
|
20
|
+
cursor: pointer;
|
21
|
+
}
|
16
22
|
.summary.highlight {
|
17
23
|
border: 2px solid #a90000;
|
18
24
|
}
|
25
|
+
.ui.table td {
|
26
|
+
max-width: 150px;
|
27
|
+
overflow: auto;
|
28
|
+
}
|
29
|
+
.ui.table td img {
|
30
|
+
max-width: 100%;
|
31
|
+
}
|
19
32
|
th.highlight {
|
20
33
|
border: 2px solid #a90000 !important;
|
21
34
|
}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vue_crud
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Donald Chiang
|
@@ -78,8 +78,6 @@ files:
|
|
78
78
|
- vendor/assets/.DS_Store
|
79
79
|
- vendor/assets/javascripts/vue_crud.js
|
80
80
|
- vendor/assets/stylesheets/vue_crud.css
|
81
|
-
- vue_crud-0.1.0.gem
|
82
|
-
- vue_crud-0.1.1.gem
|
83
81
|
- vue_crud.gemspec
|
84
82
|
homepage: http://www.mynet.com.tw
|
85
83
|
licenses:
|
data/vue_crud-0.1.0.gem
DELETED
Binary file
|
data/vue_crud-0.1.1.gem
DELETED
Binary file
|