cmdbox 0.5.1.1__py3-none-any.whl → 0.5.1.2__py3-none-any.whl

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.

Potentially problematic release.


This version of cmdbox might be problematic. Click here for more details.

cmdbox/version.py CHANGED
@@ -3,7 +3,7 @@ import datetime
3
3
  dt_now = datetime.datetime(2025, 3, 27)
4
4
  __appid__ = 'cmdbox'
5
5
  __title__ = 'cmdbox (Command Development Application)'
6
- __version__ = '0.5.1.1'
6
+ __version__ = '0.5.1.2'
7
7
  __copyright__ = f'Copyright © 2023-{dt_now.strftime("%Y")} hamacom2004jp'
8
8
  __pypiurl__ = 'https://pypi.org/project/cmdbox/'
9
9
  __srcurl__ = 'https://github.com/hamacom2004jp/cmdbox'
@@ -15,7 +15,14 @@ const list_cmd_func = async () => {
15
15
  }
16
16
  elem.find('.cmd_title').text(row.title);
17
17
  elem.find('.cmd_mode').text(row.mode);
18
- elem.find('.cmd_cmd').text(row.cmd)
18
+ elem.find('.cmd_cmd').text(row.cmd);
19
+ const tags_elem = elem.find('.cmd_tags');
20
+ if (row.tag && Array.isArray(row.tag)) {
21
+ row.tag.forEach(tag => {
22
+ if (tag=='') return;
23
+ tags_elem.append(`<span class="badge text-bg-secondary me-1"><svg class="bi bi-svg_tag" width="16" height="16" fill="currentColor"><use href="#svg_tag"></use></svg>${tag}</span>`);
24
+ });
25
+ }
19
26
  if (row.tag && Array.isArray(row.tag)) {
20
27
  const tags = new Set([...row.tag]);
21
28
  elem.find('.cmd_card').attr('data-tags', Array.from(tags).join(','));
@@ -24,49 +31,89 @@ const list_cmd_func = async () => {
24
31
  };
25
32
  py_list_cmd.forEach(row => {card_func(row, true)});
26
33
  py_list_cmd.forEach(row => {card_func(row, false)});
27
- $('#cmd_item_tags').html('');
34
+ const cmd_item_tags = $('#cmd_item_tags').html('');
35
+ const tag_bot_click = (e) => {
36
+ const ct = $(e.currentTarget);
37
+ const cmd_items = $('#cmd_items').find('.cmd_card:not(.cmd_add)');
38
+ const andor_sw = ct.hasClass('andor_switch');
39
+ const and_val = $('#andor_switch').prop('checked');
40
+ // 選択中のボタンの場合は解除中にする
41
+ if (!andor_sw && ct.hasClass('btn-secondary')) {
42
+ ct.removeClass('btn-secondary');
43
+ ct.addClass('btn-outline-secondary');
44
+ }
45
+ // 解除中のボタンの場合は選択中にする
46
+ else if (!andor_sw && ct.hasClass('btn-outline-secondary')) {
47
+ ct.removeClass('btn-outline-secondary');
48
+ ct.addClass('btn-secondary');
49
+ }
50
+ // 選択中のタグを取得
51
+ const tags = new Set();
52
+ cmd_item_tags.find('.btn-tag').each((i, elem) => {
53
+ if ($(elem).hasClass('btn-secondary')) tags.add($(elem).attr('data-tag'));
54
+ });
55
+ // タグ無しボタンが選択された場合
56
+ if (ct.hasClass('btn_notag') && ct.hasClass('btn-secondary')) {
57
+ cmd_item_tags.find('.btn-tag').removeClass('btn-secondary').addClass('btn-outline-secondary');
58
+ cmd_items.parent().hide();
59
+ cmd_items.each((i, elem) => {
60
+ const el = $(elem);
61
+ const itags = el.attr('data-tags');
62
+ if (itags) return;
63
+ el.parent().show();
64
+ });
65
+ return;
66
+ }
67
+ // notagボタンの選択を解除
68
+ if (!andor_sw) $('#btn_notag').removeClass('btn-secondary').addClass('btn-outline-secondary');
69
+ // タグがない場合は全て表示
70
+ if (tags.size == 0) {
71
+ cmd_items.parent().show();
72
+ return;
73
+ }
74
+ // タグがある場合はタグに一致するものだけ表示
75
+ cmd_items.parent().hide();
76
+ cmd_items.each((i, elem) => {
77
+ const el = $(elem);
78
+ // andorチェックされている場合はすべてのタグを含むものを表示
79
+ if (and_val) {
80
+ const itags = el.attr('data-tags');
81
+ if (!itags) return;
82
+ const etags = itags.split(',');
83
+ if (etags.filter(tag => tags.has(tag)).length == tags.size) el.parent().show();
84
+ return;
85
+ }
86
+ // andorチェックされていない場合はいずれかのタグを含むものを表示
87
+ tags.forEach(tag => {
88
+ const itags = el.attr('data-tags');
89
+ if (!itags) return;
90
+ else if (itags.split(',').includes(tag)) el.parent().show();
91
+ });
92
+ });
93
+ };
94
+ // タグボタンを追加
28
95
  py_list_cmd.forEach(row => {
29
96
  if (!row.tag || !Array.isArray(row.tag)) return;
30
- const cmd_item_tags = $('#cmd_item_tags');
31
97
  row.tag.forEach(tag => {
32
98
  if (tag=='') return;
33
99
  if (cmd_item_tags.find(`[data-tag="${tag}"]`).length > 0) return;
34
100
  const elem = $(`<button type="button" class="btn btn-outline-secondary btn-sm btn-tag me-2">${tag}</button>`);
35
101
  elem.attr('data-tag', tag);
36
102
  elem.text(tag);
37
- elem.click((e) => {
38
- const ct = $(e.currentTarget);
39
- const cmd_items = $('#cmd_items').find('.cmd_card:not(.cmd_add)');
40
- if (ct.hasClass('btn-secondary')) {
41
- ct.removeClass('btn-secondary');
42
- ct.addClass('btn-outline-secondary');
43
- }
44
- else if (ct.hasClass('btn-outline-secondary')) {
45
- ct.removeClass('btn-outline-secondary');
46
- ct.addClass('btn-secondary');
47
- }
48
- const tags = new Set();
49
- cmd_item_tags.find('.btn-tag').each((i, elem) => {
50
- if ($(elem).hasClass('btn-secondary')) tags.add($(elem).attr('data-tag'));
51
- });
52
- if (tags.size == 0) {
53
- cmd_items.parent().show();
54
- return;
55
- }
56
- cmd_items.parent().hide();
57
- tags.forEach(tag => {
58
- cmd_items.each((i, elem) => {
59
- const el = $(elem);
60
- const itags = el.attr('data-tags');
61
- if (!itags) return;
62
- else if (itags.split(',').includes(tag)) el.parent().show();
63
- });
64
- });
65
- });
103
+ elem.click(tag_bot_click);
66
104
  cmd_item_tags.append(elem);
67
105
  });
68
-
69
106
  });
107
+ // タグ未選択ボタンを追加
108
+ const noselect_bot = $(`<button type="button" class="btn btn-outline-secondary btn-sm btn_notag me-2" id="btn_notag">no tag</button>`);
109
+ noselect_bot.click(tag_bot_click);
110
+ cmd_item_tags.append(noselect_bot);
111
+ // and/orスイッチを追加
112
+ const andor_bot = $(`<div class="form-check form-switch text-secondary d-inline-block"/>`);
113
+ andor_bot.append('<input class="form-check-input andor_switch" type="checkbox" id="andor_switch">');
114
+ andor_bot.append('<label class="form-check-label" for="andor_switch">or / and</label>');
115
+ andor_bot.find('#andor_switch').click(tag_bot_click);
116
+ cmd_item_tags.append(andor_bot);
70
117
  }
71
118
  // コマンドファイルの取得が出来た時の処理
72
119
  const list_cmd_func_then = () => {
@@ -45,7 +45,8 @@ list_pipe_func_then = () => {
45
45
  const option = $('<option></option>');
46
46
  pipe_cmd_select.append(option);
47
47
  option.attr('value', cmd['title']);
48
- option.text(`${cmd['title']}(mode=${cmd['mode']}, cmd=${cmd['cmd']})`);
48
+ const tag = cmd['tag'] ? `, tag=${cmd['tag']}` : '';
49
+ option.text(`${cmd['title']}(mode=${cmd['mode']}, cmd=${cmd['cmd']}${tag})`);
49
50
  });
50
51
  cmd_select_template.find('.add_buton').click((e) => {
51
52
  cmd_select_template_func($(e.currentTarget), py_list_cmd);
cmdbox/web/gui.html CHANGED
@@ -51,6 +51,10 @@
51
51
  <symbol id="svg_magic_btn" viewBox="0 0 16 16">
52
52
  <path d="M9.5 2.672a.5.5 0 1 0 1 0V.843a.5.5 0 0 0-1 0zm4.5.035A.5.5 0 0 0 13.293 2L12 3.293a.5.5 0 1 0 .707.707zM7.293 4A.5.5 0 1 0 8 3.293L6.707 2A.5.5 0 0 0 6 2.707zm-.621 2.5a.5.5 0 1 0 0-1H4.843a.5.5 0 1 0 0 1zm8.485 0a.5.5 0 1 0 0-1h-1.829a.5.5 0 0 0 0 1zM13.293 10A.5.5 0 1 0 14 9.293L12.707 8a.5.5 0 1 0-.707.707zM9.5 11.157a.5.5 0 0 0 1 0V9.328a.5.5 0 0 0-1 0zm1.854-5.097a.5.5 0 0 0 0-.706l-.708-.708a.5.5 0 0 0-.707 0L8.646 5.94a.5.5 0 0 0 0 .707l.708.708a.5.5 0 0 0 .707 0l1.293-1.293Zm-3 3a.5.5 0 0 0 0-.706l-.708-.708a.5.5 0 0 0-.707 0L.646 13.94a.5.5 0 0 0 0 .707l.708.708a.5.5 0 0 0 .707 0z"/>
53
53
  </symbol>
54
+ <symbol id="svg_tag" viewBox="0 0 16 16">
55
+ <path d="M6 4.5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0m-1 0a.5.5 0 1 0-1 0 .5.5 0 0 0 1 0"/>
56
+ <path d="M2 1h4.586a1 1 0 0 1 .707.293l7 7a1 1 0 0 1 0 1.414l-4.586 4.586a1 1 0 0 1-1.414 0l-7-7A1 1 0 0 1 1 6.586V2a1 1 0 0 1 1-1m0 5.586 7 7L13.586 9l-7-7H2z"/>
57
+ </symbol>
54
58
  </svg>
55
59
  <!-- ナビゲーションバー -->
56
60
  <nav class="navbar navbar-expand-sm fixed-top p-2">
@@ -133,7 +137,8 @@
133
137
  <div class="d-flex">
134
138
  <h5 class="cmd_title card-title d-inline-block">Card title</h5>
135
139
  </div>
136
- <h6 class="card-subtitle mb-2 text-muted">mode:<span class="cmd_mode"></span>, cmd:<span class="cmd_cmd"></span></h6>
140
+ <h6 class="card-subtitle mb-2">mode:<span class="cmd_mode"></span>, cmd:<span class="cmd_cmd"></span></h6>
141
+ <h6 class="card-subtitle text-end"><span class="cmd_tags text-secondary"></span></h6>
137
142
  </div>
138
143
  </div>
139
144
  </div>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cmdbox
3
- Version: 0.5.1.1
3
+ Version: 0.5.1.2
4
4
  Summary: cmdbox: It is a command line application with a plugin mechanism.
5
5
  Home-page: https://github.com/hamacom2004jp/cmdbox
6
6
  Author: hamacom2004jp
@@ -6,7 +6,7 @@ cmdbox/logconf_edge.yml,sha256=RkbUebCJV2z5dLnpgvf4GSFkd-Blzu4vUUDP9CQFwdM,686
6
6
  cmdbox/logconf_gui.yml,sha256=T3yhWoiyp0DW06RjiFG6kS7jScqXYs-KLfC5EYKUImk,686
7
7
  cmdbox/logconf_server.yml,sha256=tpDpKQXgTWzUnHKGU-Vvsha7n1hyIyFdLnSeCgnOgyk,701
8
8
  cmdbox/logconf_web.yml,sha256=lzr3ytjqRbQutbhEOJdHJT0hrrR_h9sPkaEQkzX02lo,686
9
- cmdbox/version.py,sha256=PuN_mJypza3KspHzZtfKFZSr4ifDK9jRidBLSi7917w,1963
9
+ cmdbox/version.py,sha256=avcUh9fYN64SEpQ8Zte4PMgniHFaWsKlaZe8xB7iC9w,1963
10
10
  cmdbox/app/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
11
  cmdbox/app/app.py,sha256=2rQpTbezCLuy36df89EhKsAfcPjtGepGHSTQZXimcqA,8949
12
12
  cmdbox/app/client.py,sha256=SNM4xxDh5ARxV6I7cDrmbzGc7sXUUwB3tSyIksdT1RY,19562
@@ -186,7 +186,7 @@ cmdbox/licenses/LICENSE.zope.interface.7.1.1(Zope Public License).txt,sha256=bHk
186
186
  cmdbox/licenses/files.txt,sha256=E_C-9JE8iJeOs-ZY_Lg1B3Brcdqr8G-kJeFnWeSHXUk,14179
187
187
  cmdbox/web/assets_license_list.txt,sha256=TcyF-U5C8O-J3Nxfp3pxralGdazTj8BgLwwEBRn59_w,853
188
188
  cmdbox/web/filer.html,sha256=NQzwJc1k4IDpK1F99vumLC3BO7x_frO6HJcEzI9c0kw,15254
189
- cmdbox/web/gui.html,sha256=rwdRVQPwtDrW07f_07z6h090XwnSRDnwKxBUC-DTG4w,34688
189
+ cmdbox/web/gui.html,sha256=Wwb70-gH66yaYTfLwFdDXXPdEyVEhllOtuKxq4VAUoE,35141
190
190
  cmdbox/web/result.html,sha256=dZcQCLSrhTr7gY50WYCfG2wEWngnV7x9xnYOVl73WSQ,14835
191
191
  cmdbox/web/signin.html,sha256=Rhqvhcq_hZ1svRkHIpy_2BVTJkmw2R4Q4lZo93eQvsE,11063
192
192
  cmdbox/web/users.html,sha256=RHslVrj8FJgV1RI6oMTRuZTu3g7YyXMKKYGeoOzgwG4,19194
@@ -196,8 +196,8 @@ cmdbox/web/assets/cmdbox/common.js,sha256=rsegebcs7QtBNi-WEy5-sev-EDIEHV9P-0HZoj
196
196
  cmdbox/web/assets/cmdbox/favicon.ico,sha256=2U4MhqzJklRksOQwnK-MZigZCubxCHqKG_AuNJnvYtA,34494
197
197
  cmdbox/web/assets/cmdbox/filer_modal.js,sha256=hCEk0UR_bjJp9X9blWfmrbZVxKkmO3GGQ44ukSDuHbg,8522
198
198
  cmdbox/web/assets/cmdbox/icon.png,sha256=xdEwDdCS8CoPQk7brW-1mV8FIGYtUeSMBRlY9Oh-3nE,296172
199
- cmdbox/web/assets/cmdbox/list_cmd.js,sha256=mGsN4_ZZ8Lgdt6WyZAMe-yGG5DRPc_vXy9Hen9ruKU0,32801
200
- cmdbox/web/assets/cmdbox/list_pipe.js,sha256=mlzISyZUG90GbE0gxMzWpwZhzhojxqvft2gne6Vajco,11218
199
+ cmdbox/web/assets/cmdbox/list_cmd.js,sha256=SkUVr9gkakzzCZAMWGcCYPepbElHy4o1VbP-idTRSco,35334
200
+ cmdbox/web/assets/cmdbox/list_pipe.js,sha256=1Jq9MbJDtD8tsI2HB_qFUDhJ9MY3V14-zQjPZHgbrIo,11294
201
201
  cmdbox/web/assets/cmdbox/main.js,sha256=K-tBnZlCpy__juT_HHKfvHzhNJykAjva7LUBJX45XzM,4997
202
202
  cmdbox/web/assets/cmdbox/open_capture.js,sha256=W4IQlOYLN4Y8OaS8Xc5yp-BRlm82TVjujChr3hJKS0M,709
203
203
  cmdbox/web/assets/cmdbox/open_output_json.js,sha256=4q7mCdVmSzFudlTlW9MuIJ1-f-kDvpD6rDUU01IbKi8,727
@@ -248,9 +248,9 @@ cmdbox/web/assets/tree-menu/image/file.png,sha256=Uw4zYkHyuoZ_kSVkesHAeSeA_g9_LP
248
248
  cmdbox/web/assets/tree-menu/image/folder-close.png,sha256=TcgsKTBBF2ejgzekOEDBFBxsJf-Z5u0x9IZVi4GBR-I,284
249
249
  cmdbox/web/assets/tree-menu/image/folder-open.png,sha256=DT7y1GRK4oXJkFvqTN_oSGM5ZYARzPvjoCGL6wqkoo0,301
250
250
  cmdbox/web/assets/tree-menu/js/tree-menu.js,sha256=-GkZxI7xzHuXXHYQBHAVTcuKX4TtoiMuyIms6Xc3pxk,1029
251
- cmdbox-0.5.1.1.dist-info/LICENSE,sha256=sBzzPc5v-5LBuIFi2V4olsnoVg-3EBI0zRX5r19SOxE,1117
252
- cmdbox-0.5.1.1.dist-info/METADATA,sha256=Omb5J-ZI4sBjrI5WnzZsRBOSIRqG1ee4hTb1sMfAp4g,24050
253
- cmdbox-0.5.1.1.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
254
- cmdbox-0.5.1.1.dist-info/entry_points.txt,sha256=PIoRz-tr503YwdMmd6nxuSn2dDltf4cUMVs98E9WgaA,48
255
- cmdbox-0.5.1.1.dist-info/top_level.txt,sha256=eMEkD5jn8_0PkCAL8h5xJu4qAzF2O8Wf3vegFkKUXR4,7
256
- cmdbox-0.5.1.1.dist-info/RECORD,,
251
+ cmdbox-0.5.1.2.dist-info/LICENSE,sha256=sBzzPc5v-5LBuIFi2V4olsnoVg-3EBI0zRX5r19SOxE,1117
252
+ cmdbox-0.5.1.2.dist-info/METADATA,sha256=NhlyGdgD3Hp0HBPbEuknM_IRW4Y-uoeFkDmN6VMvmbM,24050
253
+ cmdbox-0.5.1.2.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
254
+ cmdbox-0.5.1.2.dist-info/entry_points.txt,sha256=PIoRz-tr503YwdMmd6nxuSn2dDltf4cUMVs98E9WgaA,48
255
+ cmdbox-0.5.1.2.dist-info/top_level.txt,sha256=eMEkD5jn8_0PkCAL8h5xJu4qAzF2O8Wf3vegFkKUXR4,7
256
+ cmdbox-0.5.1.2.dist-info/RECORD,,