whistle 2.9.19 → 2.9.22

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.
package/.gitattributes ADDED
@@ -0,0 +1 @@
1
+ biz/webui/htdocs/js/index.js diff=nodiff
package/bin/use.js CHANGED
@@ -145,10 +145,12 @@ module.exports = function(filepath, storage, force) {
145
145
  error('The rules cannot be empty and the size cannot exceed 256k.');
146
146
  return;
147
147
  }
148
+ var groupName = getString(result.groupName) || getString(result.group);
148
149
  var setRules = function() {
149
150
  var body = [
150
151
  'name=' + encodeURIComponent(name),
151
- 'rules=' + encodeURIComponent(rules)
152
+ 'rules=' + encodeURIComponent(rules),
153
+ 'groupName=' + encodeURIComponent(groupName.trim())
152
154
  ].join('&');
153
155
  request(body, function() {
154
156
  info('Setting whistle (' + (options.host || '127.0.0.1') + ':' + port + ') rules successful.');
@@ -1,12 +1,20 @@
1
1
  var rules = require('../../../../lib/rules/util').rules;
2
2
  var recycleBin = require('../../../../lib/rules/util').rules.recycleBin;
3
+ var isGroup = require('../../../../lib/util/common').isGroup;
3
4
 
4
5
  module.exports = function(req, res) {
5
6
  var body = req.body;
6
7
  var list;
7
- rules.add(body.name, body.value, body.clientId);
8
- if (body.addToTop) {
9
- rules.moveToTop(body.name, body.clientId);
8
+ var exists = rules.exists(body.name);
9
+ if (rules.add(body.name, body.value, body.clientId) != null && !isGroup(body.name)) {
10
+ if (body.groupName) {
11
+ rules.moveToGroup(body.name, body.groupName, body.addToTop);
12
+ } else if (body.addToTop) {
13
+ rules.moveToTop(body.name, body.clientId);
14
+ } else if (!exists) {
15
+ var group = rules.getFirstGroup();
16
+ group && rules.moveTo(body.name, group.name, body.clientId);
17
+ }
10
18
  }
11
19
  if (req.body.recycleFilename) {
12
20
  recycleBin.remove(req.body.recycleFilename);
@@ -2,6 +2,6 @@ var rules = require('../../../../lib/rules/util').rules;
2
2
 
3
3
  module.exports = function(req, res) {
4
4
  var body = req.body;
5
- var result = rules.moveTo(body.from, body.to, body.clientId);
5
+ var result = rules.moveTo(body.from, body.to, body.clientId, body.group === 'true', body.toTop === 'true');
6
6
  res.json({ec: result ? 0 : 2, em: 'success'});
7
7
  };
@@ -1,20 +1,37 @@
1
1
  var rules = require('../../../../lib/rules/util').rules;
2
2
 
3
+ var DEFAULT_GROUP = '\rothers';
4
+
3
5
  module.exports = function(req, res) {
4
6
  var body = req.body;
5
- var name = body.name;
7
+ var name = typeof body.name === 'string' ? body.name.trim() : null;
8
+ if (!name) {
9
+ return res.json({ ec: 0 });
10
+ }
6
11
  var rulesText = body.rules || body.value;
7
12
  if (!rulesText || !name || typeof rulesText !== 'string') {
8
13
  if (body.enable == 1) {
9
14
  rules.select(name);
10
15
  }
11
- if (body.top == 1) {
16
+ return res.json({ ec: 0, rules: !!rules.get(name) });
17
+ }
18
+ if (rules.add(name, rulesText) != null) {
19
+ var groupName = typeof body.groupName === 'string' ? body.groupName.trim() : '';
20
+ rules.select(name);
21
+ if (groupName) {
22
+ groupName = '\r' + groupName;
23
+ var group = rules.getFirstGroup();
24
+ if (rules.add(groupName) != null) {
25
+ if (!group && groupName !== DEFAULT_GROUP) {
26
+ rules.add(DEFAULT_GROUP);
27
+ rules.moveToTop(DEFAULT_GROUP);
28
+ }
29
+ rules.moveToGroup(name, groupName, true);
30
+ rules.moveGroupToTop(groupName);
31
+ }
32
+ } else {
12
33
  rules.moveToTop(name);
13
34
  }
14
- return res.json({ ec: 0, rules: !!rules.get(name) });
15
35
  }
16
- rules.add(name, rulesText);
17
- rules.select(name);
18
- rules.moveToTop(name);
19
36
  res.json({ ec: 0 });
20
37
  };
@@ -1,10 +1,19 @@
1
1
  var values = require('../../../../lib/rules/util').values;
2
2
  var recycleBin = require('../../../../lib/rules/util').values.recycleBin;
3
+ var isGroup = require('../../../../lib/util/common').isGroup;
3
4
 
4
5
  module.exports = function(req, res) {
5
6
  var body = req.body;
6
7
  var list;
7
- values.add(body.name, body.value, body.clientId);
8
+ var exists = values.exists(body.name);
9
+ if (values.add(body.name, body.value, body.clientId) != null && !isGroup(body.name)) {
10
+ if (body.groupName) {
11
+ values.moveToGroup(body.name, body.groupName);
12
+ } else if (!exists) {
13
+ var group = values.getFirstGroup();
14
+ group && values.moveTo(body.name, group.name, body.clientId);
15
+ }
16
+ }
8
17
  if (req.body.recycleFilename) {
9
18
  recycleBin.remove(req.body.recycleFilename);
10
19
  list = recycleBin.list();
@@ -2,6 +2,6 @@ var values = require('../../../../lib/rules/util').values;
2
2
 
3
3
  module.exports = function(req, res) {
4
4
  var body = req.body;
5
- var result = values.moveTo(body.from, body.to, body.clientId);
5
+ var result = values.moveTo(body.from, body.to, body.clientId, body.group === 'true');
6
6
  res.json({ec: result ? 0 : 2, em: 'success'});
7
7
  };
@@ -8,6 +8,6 @@
8
8
  </head>
9
9
  <body style="overscroll-behavior-x: none;">
10
10
  <div id="container" class="main"></div>
11
- <script src="js/index.js?v=2.9.19"></script>
11
+ <script src="js/index.js?v=2.9.22"></script>
12
12
  </body>
13
13
  </html>