Commit 8927f7d06ebb6d8e0aeb8c4f532311ba0d9d021a

Authored by 王通
1 parent ad6f760d

1.js压缩兼容es6内容

src/main/resources/fatso/handle_real_ctl.js
1 -/**  
2 - * 处理线调文件  
3 - */  
4 -var fs = require('fs')  
5 - , cheerio = require('cheerio')  
6 - , minifier = require('./minifier')  
7 - , crypto = require("crypto")  
8 - , CleanCSS = require('clean-css')  
9 - , UglifyJS = require("uglify-js");  
10 -;  
11 -  
12 -var platform = process.platform;  
13 -var iswin = platform=='win32';  
14 -var sp = platform=='win32'?'\\':'/';  
15 -//不参与的目录  
16 -var pName = 'bsth_control'  
17 - , path = process.cwd()  
18 - //根目录  
19 - , root = path.substr(0, path.indexOf(sp + 'src'+sp+'main'))  
20 - , workspace = root.substr(0, root.lastIndexOf(sp + pName))  
21 - //临时目录  
22 - , dest = (workspace + sp + pName + '@fatso_copy')//.replace(/\//g, '\\')  
23 - , _static = sp + 'src'+sp+'main'+sp+'resources'+sp+'static';  
24 -  
25 -  
26 -var mainFile = dest + _static + sp + 'real_control_v2'+sp+'main.html';  
27 -var aloneMapWrapFile = dest + _static + sp + 'real_control_v2'+sp+'alone_page'+sp+'map'+sp+'alone_wrap.html';  
28 -var aloneHomeWrapFile = dest + _static + sp + 'real_control_v2'+sp+'alone_page'+sp+'home'+sp+'home_wrap.html';  
29 -var mapFile = dest + _static + sp + 'real_control_v2'+sp+'mapmonitor'+sp+'real.html';  
30 -var realCtl = {  
31 - /**  
32 - * 处理线调首页  
33 - */  
34 - handleMain: function (cb) {  
35 - //处理main.html  
36 - var data = fs.readFileSync(mainFile, 'utf-8'),  
37 - $ = cheerio.load(data);  
38 - handleCss($, function () {  
39 - handleJs($, mainFile, cb);  
40 - });  
41 -  
42 -  
43 - },  
44 - /**  
45 - * 处理地图模块  
46 - * @param cb  
47 - */  
48 - handleMap: function (cb) {  
49 - //读取文件  
50 - var data = fs.readFileSync(mapFile, 'utf-8')  
51 - , $ = cheerio.load(data);  
52 -  
53 - handleCss($, function () {  
54 - handleJs($, mapFile, cb);  
55 - });  
56 - },  
57 - /**  
58 - * 处理单屏地图页面  
59 - * @param cb  
60 - */  
61 - handleAlonePage: function (cb) {  
62 - var data = fs.readFileSync(aloneMapWrapFile, 'utf-8');  
63 - var $ = cheerio.load(data);  
64 - handleCss($, function () {  
65 - handleJs($, aloneMapWrapFile, cb);  
66 - });  
67 - },  
68 - /**  
69 - * 处理单屏主页  
70 - * @param cb  
71 - */  
72 - handleAloneHomePage: function (cb) {  
73 - var data = fs.readFileSync(aloneHomeWrapFile, 'utf-8');  
74 - var $ = cheerio.load(data);  
75 - handleCss($, function () {  
76 - handleJs($, aloneHomeWrapFile, cb);  
77 - });  
78 - }  
79 -  
80 -};  
81 -  
82 -/**  
83 - * 处理css  
84 - * @type {any}  
85 - */  
86 -var handleCss = function ($, cb) {  
87 - var cssArray = $('link[rel=stylesheet][merge]');  
88 - //按 merge 值分组  
89 - var cssMap = {}, mergeName;  
90 - for (var i = 0, c; c = cssArray[i++];) {  
91 - mergeName = $(c).attr('merge');  
92 - if (!cssMap[mergeName])  
93 - cssMap[mergeName] = [];  
94 - cssMap[mergeName].push(dest + _static + $(c).attr('href'));  
95 - //remove  
96 - $(c).remove();  
97 - }  
98 - //按 merge 合并压缩css  
99 - var ks = get_keys(cssMap), index = 0;  
100 - (function () {  
101 - if (index >= ks.length) {  
102 - cb && cb();  
103 - return;  
104 - }  
105 - var k = ks[index];  
106 - index++;  
107 - var f = arguments.callee;  
108 - //合并css  
109 - new CleanCSS().minify(cssMap[k], function (error, out) {  
110 - var data = out.styles;  
111 - var fName = (k + '_' + md5(data)) + '.css';  
112 - //写入 assets css 目录下  
113 - var descFile = dest + _static + sp + 'real_control_v2'+sp+'assets'+sp+'css' + sp + fName;  
114 - fs.open(descFile, 'a', function (err, fd) {  
115 -  
116 - fs.write(fd, data, function () {  
117 - var tag = '<link rel="stylesheet" href="/real_control_v2/assets/css/' + fName + '"/>';  
118 - if ($('head').length > 0)  
119 - $('head').append(tag);  
120 - else {  
121 - if($('link').length > 0)  
122 - $('link').last().before(tag);  
123 - else  
124 - $('div').first().before(tag);  
125 - }  
126 - console.log(k + ' css', '结束,下一个');  
127 - f();  
128 - });  
129 - });  
130 - });  
131 - })();  
132 -};  
133 -  
134 -/**  
135 - * 处理js  
136 - */  
137 -var handleJs = function ($, file, cb) {  
138 - var scriptArray = $('script[merge]');  
139 - //按 merge 值分组  
140 - var jsMap = {}, mergeName;  
141 - for (var i = 0, s; s = scriptArray[i++];) {  
142 - mergeName = $(s).attr('merge');  
143 - if (!jsMap[mergeName])  
144 - jsMap[mergeName] = [];  
145 - jsMap[mergeName].push(dest + _static + $(s).attr('src'));  
146 - //remove  
147 - $(s).remove();  
148 - }  
149 -  
150 - //按 merge 合并压缩js  
151 - var ks = get_keys(jsMap), index = 0;  
152 - (function () {  
153 - if (index >= ks.length) {  
154 - write(file, $.html());  
155 - console.log(file + ' 结束'.green);  
156 - cb && cb();  
157 - return;  
158 - }  
159 - var k = ks[index];  
160 - index++;  
161 - var f = arguments.callee;  
162 - //合并压缩js  
163 - var result = UglifyJS.minify(jsMap[k]);  
164 - var data = result.code;  
165 - var fName = (k + '_' + md5(data)) + '.js';  
166 - //写入 assets js 目录下  
167 - var descFile = dest + _static + sp + 'real_control_v2'+sp+'assets'+sp+'js' + sp + fName;  
168 - fs.open(descFile, 'a', function (err, fd) {  
169 -  
170 - fs.write(fd, data, function () {  
171 - var tag = '<script src="/real_control_v2/assets/js/' + fName + '"></script>';  
172 - if ($('body').length > 0)  
173 - $('body').append(tag);  
174 - else {  
175 - //没有body 就写在尾部  
176 - $('*').last().after(tag);  
177 - }  
178 - console.log(k + ' js', '结束,下一个');  
179 - f();  
180 - });  
181 - });  
182 - })();  
183 -};  
184 -  
185 -var get_keys = function (json) {  
186 - var array = [];  
187 - for (var key in json) {  
188 - array.push(key);  
189 - }  
190 - return array;  
191 -};  
192 -  
193 -function md5(text) {  
194 - return crypto.createHash("md5").update(text).digest("hex");  
195 -}  
196 -  
197 -function write(file, text) {  
198 - fs.writeFile(file, text, function (err) {  
199 - if (err) {  
200 - console.log(err.toString().red);  
201 - process.exit();  
202 - }  
203 - console.log(file.green);  
204 - });  
205 -}  
206 - 1 +/**
  2 + * 处理线调文件
  3 + */
  4 +var fs = require('fs')
  5 + , cheerio = require('cheerio')
  6 + , minifier = require('./minifier')
  7 + , crypto = require("crypto")
  8 + , CleanCSS = require('clean-css');
  9 +;
  10 +
  11 +var platform = process.platform;
  12 +var iswin = platform=='win32';
  13 +var sp = platform=='win32'?'\\':'/';
  14 +//不参与的目录
  15 +var pName = 'bsth_control'
  16 + , path = process.cwd()
  17 + //根目录
  18 + , root = path.substr(0, path.indexOf(sp + 'src'+sp+'main'))
  19 + , workspace = root.substr(0, root.lastIndexOf(sp + pName))
  20 + //临时目录
  21 + , dest = (workspace + sp + pName + '@fatso_copy')//.replace(/\//g, '\\')
  22 + , _static = sp + 'src'+sp+'main'+sp+'resources'+sp+'static';
  23 +
  24 +
  25 +var mainFile = dest + _static + sp + 'real_control_v2'+sp+'main.html';
  26 +var aloneMapWrapFile = dest + _static + sp + 'real_control_v2'+sp+'alone_page'+sp+'map'+sp+'alone_wrap.html';
  27 +var aloneHomeWrapFile = dest + _static + sp + 'real_control_v2'+sp+'alone_page'+sp+'home'+sp+'home_wrap.html';
  28 +var mapFile = dest + _static + sp + 'real_control_v2'+sp+'mapmonitor'+sp+'real.html';
  29 +var realCtl = {
  30 + /**
  31 + * 处理线调首页
  32 + */
  33 + handleMain: function (cb) {
  34 + //处理main.html
  35 + var data = fs.readFileSync(mainFile, 'utf-8'),
  36 + $ = cheerio.load(data);
  37 + handleCss($, function () {
  38 + handleJs($, mainFile, cb);
  39 + });
  40 +
  41 +
  42 + },
  43 + /**
  44 + * 处理地图模块
  45 + * @param cb
  46 + */
  47 + handleMap: function (cb) {
  48 + //读取文件
  49 + var data = fs.readFileSync(mapFile, 'utf-8')
  50 + , $ = cheerio.load(data);
  51 +
  52 + handleCss($, function () {
  53 + handleJs($, mapFile, cb);
  54 + });
  55 + },
  56 + /**
  57 + * 处理单屏地图页面
  58 + * @param cb
  59 + */
  60 + handleAlonePage: function (cb) {
  61 + var data = fs.readFileSync(aloneMapWrapFile, 'utf-8');
  62 + var $ = cheerio.load(data);
  63 + handleCss($, function () {
  64 + handleJs($, aloneMapWrapFile, cb);
  65 + });
  66 + },
  67 + /**
  68 + * 处理单屏主页
  69 + * @param cb
  70 + */
  71 + handleAloneHomePage: function (cb) {
  72 + var data = fs.readFileSync(aloneHomeWrapFile, 'utf-8');
  73 + var $ = cheerio.load(data);
  74 + handleCss($, function () {
  75 + handleJs($, aloneHomeWrapFile, cb);
  76 + });
  77 + }
  78 +
  79 +};
  80 +
  81 +/**
  82 + * 处理css
  83 + * @type {any}
  84 + */
  85 +var handleCss = function ($, cb) {
  86 + var cssArray = $('link[rel=stylesheet][merge]');
  87 + //按 merge 值分组
  88 + var cssMap = {}, mergeName;
  89 + for (var i = 0, c; c = cssArray[i++];) {
  90 + mergeName = $(c).attr('merge');
  91 + if (!cssMap[mergeName])
  92 + cssMap[mergeName] = [];
  93 + cssMap[mergeName].push(dest + _static + $(c).attr('href'));
  94 + //remove
  95 + $(c).remove();
  96 + }
  97 + //按 merge 合并压缩css
  98 + var ks = get_keys(cssMap), index = 0;
  99 + (function () {
  100 + if (index >= ks.length) {
  101 + cb && cb();
  102 + return;
  103 + }
  104 + var k = ks[index];
  105 + index++;
  106 + var f = arguments.callee;
  107 + //合并css
  108 + new CleanCSS().minify(cssMap[k], function (error, out) {
  109 + var data = out.styles;
  110 + var fName = (k + '_' + md5(data)) + '.css';
  111 + //写入 assets css 目录下
  112 + var descFile = dest + _static + sp + 'real_control_v2'+sp+'assets'+sp+'css' + sp + fName;
  113 + fs.open(descFile, 'a', function (err, fd) {
  114 +
  115 + fs.write(fd, data, function () {
  116 + var tag = '<link rel="stylesheet" href="/real_control_v2/assets/css/' + fName + '"/>';
  117 + if ($('head').length > 0)
  118 + $('head').append(tag);
  119 + else {
  120 + if($('link').length > 0)
  121 + $('link').last().before(tag);
  122 + else
  123 + $('div').first().before(tag);
  124 + }
  125 + console.log(k + ' css', '结束,下一个');
  126 + f();
  127 + });
  128 + });
  129 + });
  130 + })();
  131 +};
  132 +
  133 +/**
  134 + * 处理js
  135 + */
  136 +var handleJs = function ($, file, cb) {
  137 + var scriptArray = $('script[merge]');
  138 + //按 merge 值分组
  139 + var jsMap = {}, mergeName;
  140 + for (var i = 0, s; s = scriptArray[i++];) {
  141 + mergeName = $(s).attr('merge');
  142 + if (!jsMap[mergeName])
  143 + jsMap[mergeName] = [];
  144 + jsMap[mergeName].push(dest + _static + $(s).attr('src'));
  145 + //remove
  146 + $(s).remove();
  147 + }
  148 +
  149 + //按 merge 合并压缩js
  150 + var ks = get_keys(jsMap), index = 0;
  151 + (function () {
  152 + if (index >= ks.length) {
  153 + write(file, $.html());
  154 + console.log(file + ' 结束'); // 移除.green调用
  155 + cb && cb();
  156 + return;
  157 + }
  158 + var k = ks[index];
  159 + index++;
  160 + var f = arguments.callee;
  161 + //合并压缩js
  162 + try {
  163 + // 先合并文件内容
  164 + let code = '';
  165 + for(let j = 0; j < jsMap[k].length; j++) {
  166 + code += fs.readFileSync(jsMap[k][j], 'utf8') + '\n';
  167 + }
  168 + // 使用Terser压缩
  169 + var data = minifier.mini(code);
  170 + if (code !== '' && data === '') {
  171 + console.error('压缩出错')
  172 + process.exit();
  173 + }
  174 + var fName = (k + '_' + md5(data)) + '.js';
  175 + //写入 assets js 目录下
  176 + var descFile = dest + _static + sp + 'real_control_v2'+sp+'assets'+sp+'js' + sp + fName;
  177 + fs.open(descFile, 'a', function (err, fd) {
  178 + fs.write(fd, data, function () {
  179 + var tag = '<script src="/real_control_v2/assets/js/' + fName + '"></script>';
  180 + if ($('body').length > 0)
  181 + $('body').append(tag);
  182 + else {
  183 + //没有body 就写在尾部
  184 + $('*').last().after(tag);
  185 + }
  186 + console.log(k + ' js', '结束,下一个');
  187 + f();
  188 + });
  189 + });
  190 + } catch (e) {
  191 + console.error('合并压缩错误:', e);
  192 + process.exit();
  193 + }
  194 + })();
  195 +};
  196 +
  197 +var get_keys = function (json) {
  198 + var array = [];
  199 + for (var key in json) {
  200 + array.push(key);
  201 + }
  202 + return array;
  203 +};
  204 +
  205 +function md5(text) {
  206 + return crypto.createHash("md5").update(text).digest("hex");
  207 +}
  208 +
  209 +function write(file, text) {
  210 + fs.writeFile(file, text, function (err) {
  211 + if (err) {
  212 + console.log(err.toString()); // 移除.red调用
  213 + process.exit();
  214 + }
  215 + console.log(file); // 移除.green调用
  216 + });
  217 +}
  218 +
207 module.exports = realCtl; 219 module.exports = realCtl;
208 \ No newline at end of file 220 \ No newline at end of file
src/main/resources/fatso/minifier.js
1 -/**  
2 - * @author PanZhao  
3 - * @date 2016年3月17日 下午12:44:06  
4 - */  
5 -var fs = require('fs');  
6 -var UglifyJS = require("uglify-js");  
7 -  
8 -var platform = process.platform;  
9 -var iswin = platform=='win32';  
10 -var separator = platform=='win32'?'\\':'/';  
11 -var minifier = {  
12 -  
13 - mergeAndMini: function(fileArray,scriptString, root, file){  
14 - var len = fileArray.length;  
15 - for(var i = 0; i < len; i ++){  
16 - fileArray[i] = root + fileArray[i].split('/').join(separator);  
17 - }  
18 -  
19 - var result, indoorRs;  
20 -  
21 - try {  
22 - if(fileArray && len > 0)  
23 - result = UglifyJS.minify(fileArray);  
24 -  
25 - if(scriptString)  
26 - indoorRs = UglifyJS.minify(scriptString, {fromString: true});  
27 - } catch (e) {  
28 - console.log(e);  
29 - console.log(file.red);  
30 - process.exit();  
31 - }  
32 -  
33 - return {outside: result?result.code:'', inside: indoorRs?indoorRs.code:''};  
34 - },  
35 - mini: function(file){  
36 - return UglifyJS.minify(file).code;  
37 - }  
38 -}  
39 - 1 +var fs = require('fs');
  2 +var Terser = require('terser');
  3 +
  4 +var platform = process.platform;
  5 +var iswin = platform=='win32';
  6 +var separator = platform=='win32'?'\\':'/';
  7 +var minifier = {
  8 +
  9 + mergeAndMini: function(fileArray, scriptString, root, file) {
  10 + var len = fileArray.length;
  11 + for(var i = 0; i < len; i ++){
  12 + fileArray[i] = root + fileArray[i].split('/').join(separator);
  13 + }
  14 +
  15 + var result, indoorRs;
  16 +
  17 + try {
  18 + if(fileArray && len > 0) {
  19 + // Terser可以直接接受文件路径数组
  20 + result = Terser.minify_sync(fs.readFileSync(fileArray[0], 'utf8'));
  21 + // 如果有多个文件,需要先合并内容
  22 + if(len > 1) {
  23 + let code = '';
  24 + for(let j = 0; j < len; j++) {
  25 + code += fs.readFileSync(fileArray[j], 'utf8') + '\n';
  26 + }
  27 + result = Terser.minify_sync(code);
  28 + }
  29 + }
  30 +
  31 + if(scriptString) {
  32 + // Terser不需要fromString选项,直接传递代码字符串
  33 + indoorRs = Terser.minify_sync(scriptString);
  34 + }
  35 + } catch (e) {
  36 + console.log(e);
  37 + console.log(file); // 移除.red调用,除非有chalk等库
  38 + process.exit();
  39 + }
  40 +
  41 + return {outside: result && !result.error ? result.code : '', inside: indoorRs && !indoorRs.error ? indoorRs.code : ''};
  42 + },
  43 +
  44 + mini: function(file) {
  45 + try {
  46 + // 检查file是文件路径还是代码字符串
  47 + if(typeof file === 'string' && fs.existsSync(file)) {
  48 + const code = fs.readFileSync(file, 'utf8');
  49 + const result = Terser.minify_sync(code);
  50 + return result && !result.error ? result.code : '';
  51 + } else {
  52 + // 假设是代码字符串
  53 + const result = Terser.minify_sync(file);
  54 + return result && !result.error ? result.code : '';
  55 + }
  56 + } catch (e) {
  57 + console.log(e);
  58 + return '';
  59 + }
  60 + }
  61 +};
  62 +
40 module.exports = minifier; 63 module.exports = minifier;
41 \ No newline at end of file 64 \ No newline at end of file
src/main/resources/fatso/package.json
1 -{  
2 - "name": "fatso",  
3 - "version": "1.0.0",  
4 - "description": "子页面js检查、合并、压缩等处理",  
5 - "main": "start.js",  
6 - "scripts": {  
7 - "test": "echo \"Error: no test specified\" && exit 1"  
8 - },  
9 - "author": "panzhaov5",  
10 - "license": "ISC",  
11 - "dependencies": {  
12 - "cheerio": "^0.20.0",  
13 - "clean-css": "^4.0.12",  
14 - "colors": "^1.3.3",  
15 - "eventproxy": "^0.3.4",  
16 - "uglify-js": "^2.6.2"  
17 - }  
18 -} 1 +{
  2 + "name": "fatso",
  3 + "version": "1.0.0",
  4 + "description": "子页面js检查、合并、压缩等处理",
  5 + "main": "start.js",
  6 + "scripts": {
  7 + "test": "echo \"Error: no test specified\" && exit 1"
  8 + },
  9 + "author": "panzhaov5",
  10 + "license": "ISC",
  11 + "dependencies": {
  12 + "cheerio": "^0.20.0",
  13 + "clean-css": "^4.0.12",
  14 + "colors": "^1.3.3",
  15 + "eventproxy": "^0.3.4",
  16 + "terser": "^5.44.0",
  17 + "uglify-js": "^2.6.2"
  18 + }
  19 +}
src/main/resources/fatso/start.js
@@ -16,7 +16,7 @@ var platform = process.platform; @@ -16,7 +16,7 @@ var platform = process.platform;
16 var iswin = platform == 'win32'; 16 var iswin = platform == 'win32';
17 var sp = platform == 'win32' ? '\\' : '/'; 17 var sp = platform == 'win32' ? '\\' : '/';
18 //不参与的目录 18 //不参与的目录
19 -var excludes = ['scheduleApp', 'trafficManage', 'control', 'permission' + sp + 'authorize_all','permission' + sp + 'user', 'summary', 'history_sch', 'report' + sp + 'oil', 'base' + sp + 'geo_data_edit', 'base' + sp + 'carpark', 'forms', 'mforms', 'report', 'punctual', 'base' + sp + 'timesmodel', 'base' + sp + 'stationroute', 'kl', 'dsm'] 19 +var excludes = ['scheduleApp', 'trafficManage', 'control', 'permission' + sp + 'authorize_all','permission' + sp + 'user', 'summary', 'history_sch', 'report' + sp + 'oil', 'base' + sp + 'geo_data_edit', 'base' + sp + 'carpark', 'forms', 'mforms', 'report', 'punctual', 'base' + sp + 'timesmodel', 'kl', 'dsm']
20 , ep = new EventProxy() 20 , ep = new EventProxy()
21 , pName = 'bsth_control' 21 , pName = 'bsth_control'
22 , path = process.cwd() 22 , path = process.cwd()
@@ -134,9 +134,9 @@ ep.tail(&#39;handle-fragment&#39;, function (file) { @@ -134,9 +134,9 @@ ep.tail(&#39;handle-fragment&#39;, function (file) {
134 handleJavascript(file, function (mini, $) { 134 handleJavascript(file, function (mini, $) {
135 var jsMini; 135 var jsMini;
136 if (mini.inside) 136 if (mini.inside)
137 - jsMini = '(function(){' + mini.inside + '\n' + mini.outside + '})();'; 137 + jsMini = '(function(){'+ mini.inside + '\n' + mini.outside + '})();';
138 else 138 else
139 - jsMini = '(function(){' + mini.outside + '})();'; 139 + jsMini = '(function(){'+ mini.outside + '})();';
140 140
141 write(file, $.html() + '<script>' + jsMini + '</script>'); 141 write(file, $.html() + '<script>' + jsMini + '</script>');
142 }); 142 });
src/main/resources/message_en_US.properties
@@ -2629,7 +2629,7 @@ txt-2628=Acquisition success @@ -2629,7 +2629,7 @@ txt-2628=Acquisition success
2629 txt-2629= 2629 txt-2629=
2630 txt-2630=Consumption 2630 txt-2630=Consumption
2631 txt-2631=Execute road sign 2631 txt-2631=Execute road sign
2632 -txt-2632=Ooperation or not? 2632 +txt-2632=Operational or not?
2633 txt-2633=Time type 2633 txt-2633=Time type
2634 txt-2634=Template type 2634 txt-2634=Template type
2635 txt-2635=Bad shift reason 2635 txt-2635=Bad shift reason
@@ -3034,7 +3034,7 @@ txt-3033=Start date @@ -3034,7 +3034,7 @@ txt-3033=Start date
3034 txt-3034=End date 3034 txt-3034=End date
3035 txt-3035=Report management 3035 txt-3035=Report management
3036 txt-3036=Maintenance report 3036 txt-3036=Maintenance report
3037 -txt-3037=Change people and cars 3037 +txt-3037=Change driver and vehicle
3038 txt-3038=Switch the street signs 3038 txt-3038=Switch the street signs
3039 txt-3039=Calculate complete 3039 txt-3039=Calculate complete
3040 txt-3040=Equipment parameter 3040 txt-3040=Equipment parameter
@@ -4131,7 +4131,7 @@ txt-4130=Mode @@ -4131,7 +4131,7 @@ txt-4130=Mode
4131 txt-4131=Action 4131 txt-4131=Action
4132 txt-4132=Online 4132 txt-4132=Online
4133 txt-4133=Search 4133 txt-4133=Search
4134 -txt-4134=fter 4134 +txt-4134=After
4135 txt-4135=Out of sale 4135 txt-4135=Out of sale
4136 txt-4136=Radius 4136 txt-4136=Radius
4137 txt-4137=Unit 4137 txt-4137=Unit
src/main/resources/static/pages/base/stationroute/js/routes-operation.js
@@ -1429,7 +1429,7 @@ var RoutesOperation = (function () { @@ -1429,7 +1429,7 @@ var RoutesOperation = (function () {
1429 if($($("#versions").find("option:selected")[0]).attr("status") > 0){ 1429 if($($("#versions").find("option:selected")[0]).attr("status") > 0){
1430 htm += '<button class="info_win_btn" id="editStation" onclick="RoutesOperation.editSection(' + sectionRoute.id +','+dir+ ')">' + i18n('txt-4028') + '</button>' + 1430 htm += '<button class="info_win_btn" id="editStation" onclick="RoutesOperation.editSection(' + sectionRoute.id +','+dir+ ')">' + i18n('txt-4028') + '</button>' +
1431 '<button class="info_win_btn" id="addBetweenStationRoad" onclick="RoutesOperation.destroySection('+ sectionRoute.id + ','+sectionRoute.line.id+','+sectionRoute.directions+')">' + i18n('txt-4211') + '</button>' + 1431 '<button class="info_win_btn" id="addBetweenStationRoad" onclick="RoutesOperation.destroySection('+ sectionRoute.id + ','+sectionRoute.line.id+','+sectionRoute.directions+')">' + i18n('txt-4211') + '</button>' +
1432 - '<button class="info_win_btn" id="addSectionAfter" onclick="RoutesOperation.addSectionAfter('+sectionRoute.id+')">' + i18n('txt-4361') + '(' + i18n('txt-4134') + ')</button>' + 1432 + '<button class="info_win_btn" id="addSectionAfter" onclick="RoutesOperation.addSectionAfter('+sectionRoute.id+')">' + i18n('txt-4361') + '</button>' +
1433 '</div>'; 1433 '</div>';
1434 } 1434 }
1435 1435
@@ -1715,7 +1715,7 @@ var RoutesOperation = (function () { @@ -1715,7 +1715,7 @@ var RoutesOperation = (function () {
1715 if($($("#versions").find("option:selected")[0]).attr("status") > 0){ 1715 if($($("#versions").find("option:selected")[0]).attr("status") > 0){
1716 htm += '<button class="info_win_btn" id="editStation" onclick="RoutesOperation.editSection_inout(' + sectionRoute.id +','+dir+ ')">' + i18n('txt-4028') + '</button>' + 1716 htm += '<button class="info_win_btn" id="editStation" onclick="RoutesOperation.editSection_inout(' + sectionRoute.id +','+dir+ ')">' + i18n('txt-4028') + '</button>' +
1717 '<button class="info_win_btn" id="addBetweenStationRoad" onclick="RoutesOperation.destroySection_inout('+ sectionRoute.id + ','+sectionRoute.line.id+','+sectionRoute.directions+')">' + i18n('txt-4211') + '</button>' + 1717 '<button class="info_win_btn" id="addBetweenStationRoad" onclick="RoutesOperation.destroySection_inout('+ sectionRoute.id + ','+sectionRoute.line.id+','+sectionRoute.directions+')">' + i18n('txt-4211') + '</button>' +
1718 - '<button class="info_win_btn" id="addSectionAfter" onclick="RoutesOperation.addSectionAfter_inout('+sectionRoute.id+')">' + i18n('txt-4361') + '(' + i18n('txt-4134') + ')</button>' + 1718 + '<button class="info_win_btn" id="addSectionAfter" onclick="RoutesOperation.addSectionAfter_inout('+sectionRoute.id+')">' + i18n('txt-4361') + '</button>' +
1719 '</div>'; 1719 '</div>';
1720 } 1720 }
1721 1721