[PATCH 0/6] Debug Report Rename Feature

Enable debug report rename feature in this patch set. Hongliang Wang (6): Debug Report Rename: Update API.json Debug Report Rename: Update API.md Debug Report Rename: Implement Back-end Debug Report Rename UI: Add API in kimchi.api.js Debug Report Rename UI: Add Rename Page Debug Report Rename UI: Enable Rename in Host Tab docs/API.md | 3 ++ src/kimchi/API.json | 11 +++++++ src/kimchi/control/debugreports.py | 4 ++- src/kimchi/model/debugreports.py | 13 +++++++++ ui/css/theme-default/report-rename.css | 22 ++++++++++++++ ui/js/src/kimchi.api.js | 12 ++++++++ ui/js/src/kimchi.host.js | 12 ++++++++ ui/js/src/kimchi.report_rename_main.js | 39 +++++++++++++++++++++++++ ui/pages/report-rename.html.tmpl | 53 ++++++++++++++++++++++++++++++++++ 9 files changed, 168 insertions(+), 1 deletion(-) create mode 100644 ui/css/theme-default/report-rename.css create mode 100644 ui/js/src/kimchi.report_rename_main.js create mode 100644 ui/pages/report-rename.html.tmpl -- 1.8.1.4

Update API.json for validation. Signed-off-by: Hongliang Wang <hlwang@linux.vnet.ibm.com> --- src/kimchi/API.json | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/kimchi/API.json b/src/kimchi/API.json index b9d371a..b56cba3 100644 --- a/src/kimchi/API.json +++ b/src/kimchi/API.json @@ -41,6 +41,17 @@ } } }, + "debugreport_update": { + "type": "object", + "properties": { + "name": { + "description": "New name of debug report", + "type": "string", + "pattern": "^[A-Za-z0-9-]*$", + "error": "KCHDR0007E" + } + } + }, "storagepools_create": { "type": "object", "error": "KCHPOOL0026E", -- 1.8.1.4

Reviewed-by: ShaoHe Feng <shaohef@linux.vnet.ibm.com> On 05/21/2014 05:09 PM, Hongliang Wang wrote:
Update API.json for validation.
Signed-off-by: Hongliang Wang <hlwang@linux.vnet.ibm.com> --- src/kimchi/API.json | 11 +++++++++++ 1 file changed, 11 insertions(+)
diff --git a/src/kimchi/API.json b/src/kimchi/API.json index b9d371a..b56cba3 100644 --- a/src/kimchi/API.json +++ b/src/kimchi/API.json @@ -41,6 +41,17 @@ } } }, + "debugreport_update": { + "type": "object", + "properties": { + "name": { + "description": "New name of debug report", + "type": "string", + "pattern": "^[A-Za-z0-9-]*$", + "error": "KCHDR0007E" + } + } + }, "storagepools_create": { "type": "object", "error": "KCHPOOL0026E",
-- Thanks and best regards! Sheldon Feng(冯少合)<shaohef@linux.vnet.ibm.com> IBM Linux Technology Center

Update API.md accordingly. Signed-off-by: Hongliang Wang <hlwang@linux.vnet.ibm.com> --- docs/API.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/API.md b/docs/API.md index 9217a37..6a8c02e 100644 --- a/docs/API.md +++ b/docs/API.md @@ -707,6 +707,9 @@ specific to the low level collection tool being used. * uri: The URI path to download a debug report * time: The time when the debug report is created +* **PUT**: rename an existed debug report + * name: The new name for this debug report + * **DELETE**: Remove the Debug Report * name: The debug report name used to identify the report -- 1.8.1.4

Added processing in model and controller. Signed-off-by: Hongliang Wang <hlwang@linux.vnet.ibm.com> --- src/kimchi/control/debugreports.py | 4 +++- src/kimchi/model/debugreports.py | 13 +++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/kimchi/control/debugreports.py b/src/kimchi/control/debugreports.py index 3c12230..65b53a3 100644 --- a/src/kimchi/control/debugreports.py +++ b/src/kimchi/control/debugreports.py @@ -22,7 +22,7 @@ from kimchi.control.utils import internal_redirect from kimchi.control.utils import UrlSubNode -@UrlSubNode("debugreports", True, ['GET', 'POST']) +@UrlSubNode("debugreports", True, ['GET', 'PUT', 'POST']) class DebugReports(AsyncCollection): def __init__(self, model): super(DebugReports, self).__init__(model) @@ -32,6 +32,8 @@ class DebugReports(AsyncCollection): class DebugReport(Resource): def __init__(self, model, ident): super(DebugReport, self).__init__(model, ident) + self.update_params = ["name"] + self.uri_fmt = '/debugreports/%s' self.content = DebugReportContent(model, ident) @property diff --git a/src/kimchi/model/debugreports.py b/src/kimchi/model/debugreports.py index cd31b31..43c4fb6 100644 --- a/src/kimchi/model/debugreports.py +++ b/src/kimchi/model/debugreports.py @@ -170,6 +170,19 @@ class DebugReportModel(object): return {'uri': file_target, 'ctime': ctime} + def update(self, name, params): + path = config.get_debugreports_path() + file_pattern = os.path.join(path, name + '.*') + try: + file_source = glob.glob(file_pattern)[0] + except IndexError: + raise NotFoundError("KCHDR0001E", {'name': name}) + + file_target = file_source.replace(name, params['name']) + shutil.move(file_source, file_target) + kimchi_log.info('%s renamed to %s' % (file_source, file_target)) + return params['name'] + def delete(self, name): path = config.get_debugreports_path() file_pattern = os.path.join(path, name + '.*') -- 1.8.1.4

looks good. Just a minor inline comment below On 05/21/2014 05:09 PM, Hongliang Wang wrote:
Added processing in model and controller.
Signed-off-by: Hongliang Wang <hlwang@linux.vnet.ibm.com> --- src/kimchi/control/debugreports.py | 4 +++- src/kimchi/model/debugreports.py | 13 +++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/src/kimchi/control/debugreports.py b/src/kimchi/control/debugreports.py index 3c12230..65b53a3 100644 --- a/src/kimchi/control/debugreports.py +++ b/src/kimchi/control/debugreports.py @@ -22,7 +22,7 @@ from kimchi.control.utils import internal_redirect from kimchi.control.utils import UrlSubNode
-@UrlSubNode("debugreports", True, ['GET', 'POST']) +@UrlSubNode("debugreports", True, ['GET', 'PUT', 'POST']) class DebugReports(AsyncCollection): def __init__(self, model): super(DebugReports, self).__init__(model) @@ -32,6 +32,8 @@ class DebugReports(AsyncCollection): class DebugReport(Resource): def __init__(self, model, ident): super(DebugReport, self).__init__(model, ident) + self.update_params = ["name"] + self.uri_fmt = '/debugreports/%s' self.content = DebugReportContent(model, ident)
@property diff --git a/src/kimchi/model/debugreports.py b/src/kimchi/model/debugreports.py index cd31b31..43c4fb6 100644 --- a/src/kimchi/model/debugreports.py +++ b/src/kimchi/model/debugreports.py @@ -170,6 +170,19 @@ class DebugReportModel(object): return {'uri': file_target, 'ctime': ctime}
+ def update(self, name, params): + path = config.get_debugreports_path() + file_pattern = os.path.join(path, name + '.*') + try: + file_source = glob.glob(file_pattern)[0] + except IndexError: + raise NotFoundError("KCHDR0001E", {'name': name}) + + file_target = file_source.replace(name, params['name']) + shutil.move(file_source, file_target) + kimchi_log.info('%s renamed to %s' % (file_source, file_target)) This is right for python string formatting. '%s renamed to %s' % (file_source, file_target)) But we use comma for log. logger has itself string formatting. kimchi_log.info('%s renamed to %s', file_source, file_target) + return params['name'] + def delete(self, name): path = config.get_debugreports_path() file_pattern = os.path.join(path, name + '.*')
-- Thanks and best regards! Sheldon Feng(冯少合)<shaohef@linux.vnet.ibm.com> IBM Linux Technology Center

Added API. Signed-off-by: Hongliang Wang <hlwang@linux.vnet.ibm.com> --- ui/js/src/kimchi.api.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/ui/js/src/kimchi.api.js b/ui/js/src/kimchi.api.js index 7d85fdf..584eabe 100644 --- a/ui/js/src/kimchi.api.js +++ b/ui/js/src/kimchi.api.js @@ -695,6 +695,18 @@ var kimchi = { }); }, + renameReport : function(name, settings, suc, err) { + $.ajax({ + url : kimchi.url + "debugreports/" + encodeURIComponent(name), + type : 'PUT', + contentType : 'application/json', + data : JSON.stringify(settings), + dataType : 'json', + success: suc, + error: err + }); + }, + deleteReport: function(settings, suc, err) { var reportName = encodeURIComponent(settings['name']); kimchi.requestJSON({ -- 1.8.1.4

Added rename page including HTML, CSS, and JS. Signed-off-by: Hongliang Wang <hlwang@linux.vnet.ibm.com> --- ui/css/theme-default/report-rename.css | 22 ++++++++++++++ ui/js/src/kimchi.report_rename_main.js | 39 +++++++++++++++++++++++++ ui/pages/report-rename.html.tmpl | 53 ++++++++++++++++++++++++++++++++++ 3 files changed, 114 insertions(+) create mode 100644 ui/css/theme-default/report-rename.css create mode 100644 ui/js/src/kimchi.report_rename_main.js create mode 100644 ui/pages/report-rename.html.tmpl diff --git a/ui/css/theme-default/report-rename.css b/ui/css/theme-default/report-rename.css new file mode 100644 index 0000000..959d577 --- /dev/null +++ b/ui/css/theme-default/report-rename.css @@ -0,0 +1,22 @@ +#report-rename-window { + height: 300px; + width: 400px; +} + +#report-rename-window .field { + font-size: 12px; +} + +#report-name-textbox { + -moz-box-sizing: border-box; + box-sizing: border-box; + margin: .5em 0; + width: 100%; +} + +#button-report-rename[disabled] { + background: #c0c0c0 url(../../images/theme-default/loading.gif) 7px + center no-repeat; + color: #DDD; + prenameing-left: 26px; +} diff --git a/ui/js/src/kimchi.report_rename_main.js b/ui/js/src/kimchi.report_rename_main.js new file mode 100644 index 0000000..3bb5020 --- /dev/null +++ b/ui/js/src/kimchi.report_rename_main.js @@ -0,0 +1,39 @@ +kimchi.report_rename_main = function() { + var renameReportForm = $('#form-report-rename'); + var submitButton = $('#button-report-rename'); + var nameTextbox = $('input[name="name"]', renameReportForm); + var submitForm = function(event) { + if(submitButton.prop('disabled')) { + return false; + } + var reportName = nameTextbox.val(); + var validator = RegExp("^[A-Za-z0-9-]*$"); + if (!validator.test(reportName)) { + kimchi.message.error.code('KCHDR6011M'); + return false; + } + var formData = renameReportForm.serializeObject(); + submitButton.prop('disabled', true); + nameTextbox.prop('disabled', true); + kimchi.renameReport(kimchi.selectedReport, formData, function(result) { + kimchi.window.close(); + kimchi.topic('kimchi/debugReportRenamed').publish({ + result: result + }); + }, function(result) { + var errText = result && + result['responseJSON'] && + result['responseJSON']['reason']; + kimchi.message.error(errText); + submitButton.prop('disabled', false); + nameTextbox.prop('disabled', false).focus(); + }); + + event.preventDefault(); + }; + + renameReportForm.on('submit', submitForm); + submitButton.on('click', submitForm); + + nameTextbox.val(kimchi.selectedReport).select(); +}; diff --git a/ui/pages/report-rename.html.tmpl b/ui/pages/report-rename.html.tmpl new file mode 100644 index 0000000..7fab0b6 --- /dev/null +++ b/ui/pages/report-rename.html.tmpl @@ -0,0 +1,53 @@ +#* + * Project Kimchi + * + * Copyright IBM, Corp. 2013 + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *# +#unicode UTF-8 +#import gettext +#from kimchi.cachebust import href +#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang) +#silent _ = t.gettext +#silent _t = t.gettext +<!DOCTYPE html> +<div id="report-rename-window" class="window"> + <header> + <h1 class="title">$_("Rename a Debug Report")</h1> + <div class="close">X</div> + </header> + <div class="content"> + <form id="form-report-rename"> + <section class="form-section"> + <h2> + <label for="report-name-textbox">$_("Report Name")</label> + </h2> + <div class="field"> + <span> + $_("The name used to identify the report. Name can contain: letters, digits and hyphen (\"-\").") + </span> + <input type="text" class="text" id="report-name-textbox" name="name" /> + </div> + </section> + </form> + </div> + <footer> + <div class="btn-group"> + <button id="button-report-rename" class="btn-normal"><span class="text">$_("Submit")</span></button> + </div> + </footer> +</div> +<script> + kimchi.report_rename_main(); +</script> -- 1.8.1.4

On 5/21/2014 5:09 PM, Hongliang Wang wrote:
Added rename page including HTML, CSS, and JS.
Signed-off-by: Hongliang Wang <hlwang@linux.vnet.ibm.com> --- ui/css/theme-default/report-rename.css | 22 ++++++++++++++ ui/js/src/kimchi.report_rename_main.js | 39 +++++++++++++++++++++++++ ui/pages/report-rename.html.tmpl | 53 ++++++++++++++++++++++++++++++++++ 3 files changed, 114 insertions(+) create mode 100644 ui/css/theme-default/report-rename.css create mode 100644 ui/js/src/kimchi.report_rename_main.js create mode 100644 ui/pages/report-rename.html.tmpl
diff --git a/ui/css/theme-default/report-rename.css b/ui/css/theme-default/report-rename.css new file mode 100644 index 0000000..959d577 --- /dev/null +++ b/ui/css/theme-default/report-rename.css @@ -0,0 +1,22 @@ +#report-rename-window { + height: 300px; + width: 400px; +} + +#report-rename-window .field { + font-size: 12px; +} + +#report-name-textbox { + -moz-box-sizing: border-box; + box-sizing: border-box; + margin: .5em 0; + width: 100%; +} + +#button-report-rename[disabled] { + background: #c0c0c0 url(../../images/theme-default/loading.gif) 7px + center no-repeat; + color: #DDD; + prenameing-left: 26px; +} diff --git a/ui/js/src/kimchi.report_rename_main.js b/ui/js/src/kimchi.report_rename_main.js new file mode 100644 index 0000000..3bb5020 --- /dev/null +++ b/ui/js/src/kimchi.report_rename_main.js @@ -0,0 +1,39 @@ +kimchi.report_rename_main = function() { + var renameReportForm = $('#form-report-rename'); + var submitButton = $('#button-report-rename'); + var nameTextbox = $('input[name="name"]', renameReportForm); + var submitForm = function(event) { + if(submitButton.prop('disabled')) { + return false; + } + var reportName = nameTextbox.val(); + var validator = RegExp("^[A-Za-z0-9-]*$"); + if (!validator.test(reportName)) { + kimchi.message.error.code('KCHDR6011M'); + return false; + } + var formData = renameReportForm.serializeObject(); + submitButton.prop('disabled', true); + nameTextbox.prop('disabled', true); + kimchi.renameReport(kimchi.selectedReport, formData, function(result) { + kimchi.window.close(); + kimchi.topic('kimchi/debugReportRenamed').publish({ + result: result + }); + }, function(result) { + var errText = result && + result['responseJSON'] && + result['responseJSON']['reason']; + kimchi.message.error(errText); + submitButton.prop('disabled', false); + nameTextbox.prop('disabled', false).focus(); + }); + + event.preventDefault(); + }; + + renameReportForm.on('submit', submitForm); + submitButton.on('click', submitForm); + + nameTextbox.val(kimchi.selectedReport).select(); +}; diff --git a/ui/pages/report-rename.html.tmpl b/ui/pages/report-rename.html.tmpl new file mode 100644 index 0000000..7fab0b6 --- /dev/null +++ b/ui/pages/report-rename.html.tmpl @@ -0,0 +1,53 @@ +#* + * Project Kimchi + * + * Copyright IBM, Corp. 2013 + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *# +#unicode UTF-8 +#import gettext +#from kimchi.cachebust import href +#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang) +#silent _ = t.gettext +#silent _t = t.gettext +<!DOCTYPE html> +<div id="report-rename-window" class="window"> + <header> + <h1 class="title">$_("Rename a Debug Report")</h1> + <div class="close">X</div> + </header> + <div class="content"> + <form id="form-report-rename"> + <section class="form-section"> + <h2> + <label for="report-name-textbox">$_("Report Name")</label> + </h2> + <div class="field"> + <span> + $_("The name used to identify the report. Name can contain: letters, digits and hyphen (\"-\").") + </span> + <input type="text" class="text" id="report-name-textbox" name="name" /> The original report name should be displayed in the text box and user can modify on top of it. A clear button can be provided to clear the whole text also. + </div> + </section> + </form> + </div> + <footer> + <div class="btn-group"> + <button id="button-report-rename" class="btn-normal"><span class="text">$_("Submit")</span></button> + </div> + </footer> +</div> +<script> + kimchi.report_rename_main(); +</script>

Ignore this comment, missed some code when review. On 5/21/2014 5:49 PM, Yu Xin Huo wrote:
On 5/21/2014 5:09 PM, Hongliang Wang wrote:
Added rename page including HTML, CSS, and JS.
Signed-off-by: Hongliang Wang <hlwang@linux.vnet.ibm.com> --- ui/css/theme-default/report-rename.css | 22 ++++++++++++++ ui/js/src/kimchi.report_rename_main.js | 39 +++++++++++++++++++++++++ ui/pages/report-rename.html.tmpl | 53 ++++++++++++++++++++++++++++++++++ 3 files changed, 114 insertions(+) create mode 100644 ui/css/theme-default/report-rename.css create mode 100644 ui/js/src/kimchi.report_rename_main.js create mode 100644 ui/pages/report-rename.html.tmpl
diff --git a/ui/css/theme-default/report-rename.css b/ui/css/theme-default/report-rename.css new file mode 100644 index 0000000..959d577 --- /dev/null +++ b/ui/css/theme-default/report-rename.css @@ -0,0 +1,22 @@ +#report-rename-window { + height: 300px; + width: 400px; +} + +#report-rename-window .field { + font-size: 12px; +} + +#report-name-textbox { + -moz-box-sizing: border-box; + box-sizing: border-box; + margin: .5em 0; + width: 100%; +} + +#button-report-rename[disabled] { + background: #c0c0c0 url(../../images/theme-default/loading.gif) 7px + center no-repeat; + color: #DDD; + prenameing-left: 26px; +} diff --git a/ui/js/src/kimchi.report_rename_main.js b/ui/js/src/kimchi.report_rename_main.js new file mode 100644 index 0000000..3bb5020 --- /dev/null +++ b/ui/js/src/kimchi.report_rename_main.js @@ -0,0 +1,39 @@ +kimchi.report_rename_main = function() { + var renameReportForm = $('#form-report-rename'); + var submitButton = $('#button-report-rename'); + var nameTextbox = $('input[name="name"]', renameReportForm); + var submitForm = function(event) { + if(submitButton.prop('disabled')) { + return false; + } + var reportName = nameTextbox.val(); + var validator = RegExp("^[A-Za-z0-9-]*$"); + if (!validator.test(reportName)) { + kimchi.message.error.code('KCHDR6011M'); + return false; + } + var formData = renameReportForm.serializeObject(); + submitButton.prop('disabled', true); + nameTextbox.prop('disabled', true); + kimchi.renameReport(kimchi.selectedReport, formData, function(result) { + kimchi.window.close(); + kimchi.topic('kimchi/debugReportRenamed').publish({ + result: result + }); + }, function(result) { + var errText = result && + result['responseJSON'] && + result['responseJSON']['reason']; + kimchi.message.error(errText); + submitButton.prop('disabled', false); + nameTextbox.prop('disabled', false).focus(); + }); + + event.preventDefault(); + }; + + renameReportForm.on('submit', submitForm); + submitButton.on('click', submitForm); + + nameTextbox.val(kimchi.selectedReport).select(); +}; diff --git a/ui/pages/report-rename.html.tmpl b/ui/pages/report-rename.html.tmpl new file mode 100644 index 0000000..7fab0b6 --- /dev/null +++ b/ui/pages/report-rename.html.tmpl @@ -0,0 +1,53 @@ +#* + * Project Kimchi + * + * Copyright IBM, Corp. 2013 + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *# +#unicode UTF-8 +#import gettext +#from kimchi.cachebust import href +#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang) +#silent _ = t.gettext +#silent _t = t.gettext +<!DOCTYPE html> +<div id="report-rename-window" class="window"> + <header> + <h1 class="title">$_("Rename a Debug Report")</h1> + <div class="close">X</div> + </header> + <div class="content"> + <form id="form-report-rename"> + <section class="form-section"> + <h2> + <label for="report-name-textbox">$_("Report Name")</label> + </h2> + <div class="field"> + <span> + $_("The name used to identify the report. Name can contain: letters, digits and hyphen (\"-\").") + </span> + <input type="text" class="text" id="report-name-textbox" name="name" /> The original report name should be displayed in the text box and user can modify on top of it. A clear button can be provided to clear the whole text also. + </div> + </section> + </form> + </div> + <footer> + <div class="btn-group"> + <button id="button-report-rename" class="btn-normal"><span class="text">$_("Submit")</span></button> + </div> + </footer> +</div> +<script> + kimchi.report_rename_main(); +</script>
_______________________________________________ Kimchi-devel mailing list Kimchi-devel@ovirt.org http://lists.ovirt.org/mailman/listinfo/kimchi-devel

Nice job! But there still exists 2 minor issues that you might want to fix: 1) The 'Generate Time' Changes to the current time after renaming, which I think better be the time that user generated the file. 2) List is not ordered after renaming. I think it's better be sorted by generate time. Best Regards Wang Wen On 05/21/2014 05:09 PM, Hongliang Wang wrote:
Added rename page including HTML, CSS, and JS.
Signed-off-by: Hongliang Wang <hlwang@linux.vnet.ibm.com> --- ui/css/theme-default/report-rename.css | 22 ++++++++++++++ ui/js/src/kimchi.report_rename_main.js | 39 +++++++++++++++++++++++++ ui/pages/report-rename.html.tmpl | 53 ++++++++++++++++++++++++++++++++++ 3 files changed, 114 insertions(+) create mode 100644 ui/css/theme-default/report-rename.css create mode 100644 ui/js/src/kimchi.report_rename_main.js create mode 100644 ui/pages/report-rename.html.tmpl
diff --git a/ui/css/theme-default/report-rename.css b/ui/css/theme-default/report-rename.css new file mode 100644 index 0000000..959d577 --- /dev/null +++ b/ui/css/theme-default/report-rename.css @@ -0,0 +1,22 @@ +#report-rename-window { + height: 300px; + width: 400px; +} + +#report-rename-window .field { + font-size: 12px; +} + +#report-name-textbox { + -moz-box-sizing: border-box; + box-sizing: border-box; + margin: .5em 0; + width: 100%; +} + +#button-report-rename[disabled] { + background: #c0c0c0 url(../../images/theme-default/loading.gif) 7px + center no-repeat; + color: #DDD; + prenameing-left: 26px; +} diff --git a/ui/js/src/kimchi.report_rename_main.js b/ui/js/src/kimchi.report_rename_main.js new file mode 100644 index 0000000..3bb5020 --- /dev/null +++ b/ui/js/src/kimchi.report_rename_main.js @@ -0,0 +1,39 @@ +kimchi.report_rename_main = function() { + var renameReportForm = $('#form-report-rename'); + var submitButton = $('#button-report-rename'); + var nameTextbox = $('input[name="name"]', renameReportForm); + var submitForm = function(event) { + if(submitButton.prop('disabled')) { + return false; + } + var reportName = nameTextbox.val(); + var validator = RegExp("^[A-Za-z0-9-]*$"); + if (!validator.test(reportName)) { + kimchi.message.error.code('KCHDR6011M'); + return false; + } + var formData = renameReportForm.serializeObject(); + submitButton.prop('disabled', true); + nameTextbox.prop('disabled', true); + kimchi.renameReport(kimchi.selectedReport, formData, function(result) { + kimchi.window.close(); + kimchi.topic('kimchi/debugReportRenamed').publish({ + result: result + }); + }, function(result) { + var errText = result && + result['responseJSON'] && + result['responseJSON']['reason']; + kimchi.message.error(errText); + submitButton.prop('disabled', false); + nameTextbox.prop('disabled', false).focus(); + }); + + event.preventDefault(); + }; + + renameReportForm.on('submit', submitForm); + submitButton.on('click', submitForm); + + nameTextbox.val(kimchi.selectedReport).select(); +}; diff --git a/ui/pages/report-rename.html.tmpl b/ui/pages/report-rename.html.tmpl new file mode 100644 index 0000000..7fab0b6 --- /dev/null +++ b/ui/pages/report-rename.html.tmpl @@ -0,0 +1,53 @@ +#* + * Project Kimchi + * + * Copyright IBM, Corp. 2013 + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *# +#unicode UTF-8 +#import gettext +#from kimchi.cachebust import href +#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang) +#silent _ = t.gettext +#silent _t = t.gettext +<!DOCTYPE html> +<div id="report-rename-window" class="window"> + <header> + <h1 class="title">$_("Rename a Debug Report")</h1> + <div class="close">X</div> + </header> + <div class="content"> + <form id="form-report-rename"> + <section class="form-section"> + <h2> + <label for="report-name-textbox">$_("Report Name")</label> + </h2> + <div class="field"> + <span> + $_("The name used to identify the report. Name can contain: letters, digits and hyphen (\"-\").") + </span> + <input type="text" class="text" id="report-name-textbox" name="name" /> + </div> + </section> + </form> + </div> + <footer> + <div class="btn-group"> + <button id="button-report-rename" class="btn-normal"><span class="text">$_("Submit")</span></button> + </div> + </footer> +</div> +<script> + kimchi.report_rename_main(); +</script>

On 05/21/2014 06:04 PM, wenwang wrote:
Nice job!
But there still exists 2 minor issues that you might want to fix:
1) The 'Generate Time' Changes to the current time after renaming, which I think better be the time that user generated the file. ACK. Will send a patch. File creation time API is platform dependent, maybe we need use the modification time instead of change time in current implement. 2) List is not ordered after renaming. I think it's better be sorted by generate time. ACK.
Best Regards
Wang Wen
On 05/21/2014 05:09 PM, Hongliang Wang wrote:
Added rename page including HTML, CSS, and JS.
Signed-off-by: Hongliang Wang<hlwang@linux.vnet.ibm.com> --- ui/css/theme-default/report-rename.css | 22 ++++++++++++++ ui/js/src/kimchi.report_rename_main.js | 39 +++++++++++++++++++++++++ ui/pages/report-rename.html.tmpl | 53 ++++++++++++++++++++++++++++++++++ 3 files changed, 114 insertions(+) create mode 100644 ui/css/theme-default/report-rename.css create mode 100644 ui/js/src/kimchi.report_rename_main.js create mode 100644 ui/pages/report-rename.html.tmpl
diff --git a/ui/css/theme-default/report-rename.css b/ui/css/theme-default/report-rename.css new file mode 100644 index 0000000..959d577 --- /dev/null +++ b/ui/css/theme-default/report-rename.css @@ -0,0 +1,22 @@ +#report-rename-window { + height: 300px; + width: 400px; +} + +#report-rename-window .field { + font-size: 12px; +} + +#report-name-textbox { + -moz-box-sizing: border-box; + box-sizing: border-box; + margin: .5em 0; + width: 100%; +} + +#button-report-rename[disabled] { + background: #c0c0c0 url(../../images/theme-default/loading.gif) 7px + center no-repeat; + color: #DDD; + prenameing-left: 26px; +} diff --git a/ui/js/src/kimchi.report_rename_main.js b/ui/js/src/kimchi.report_rename_main.js new file mode 100644 index 0000000..3bb5020 --- /dev/null +++ b/ui/js/src/kimchi.report_rename_main.js @@ -0,0 +1,39 @@ +kimchi.report_rename_main = function() { + var renameReportForm = $('#form-report-rename'); + var submitButton = $('#button-report-rename'); + var nameTextbox = $('input[name="name"]', renameReportForm); + var submitForm = function(event) { + if(submitButton.prop('disabled')) { + return false; + } + var reportName = nameTextbox.val(); + var validator = RegExp("^[A-Za-z0-9-]*$"); + if (!validator.test(reportName)) { + kimchi.message.error.code('KCHDR6011M'); + return false; + } + var formData = renameReportForm.serializeObject(); + submitButton.prop('disabled', true); + nameTextbox.prop('disabled', true); + kimchi.renameReport(kimchi.selectedReport, formData, function(result) { + kimchi.window.close(); + kimchi.topic('kimchi/debugReportRenamed').publish({ + result: result + }); + }, function(result) { + var errText = result && + result['responseJSON'] && + result['responseJSON']['reason']; + kimchi.message.error(errText); + submitButton.prop('disabled', false); + nameTextbox.prop('disabled', false).focus(); + }); + + event.preventDefault(); + }; + + renameReportForm.on('submit', submitForm); + submitButton.on('click', submitForm); + + nameTextbox.val(kimchi.selectedReport).select(); +}; diff --git a/ui/pages/report-rename.html.tmpl b/ui/pages/report-rename.html.tmpl new file mode 100644 index 0000000..7fab0b6 --- /dev/null +++ b/ui/pages/report-rename.html.tmpl @@ -0,0 +1,53 @@ +#* + * Project Kimchi + * + * Copyright IBM, Corp. 2013 + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + *http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *# +#unicode UTF-8 +#import gettext +#from kimchi.cachebust import href +#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang) +#silent _ = t.gettext +#silent _t = t.gettext +<!DOCTYPE html> +<div id="report-rename-window" class="window"> + <header> + <h1 class="title">$_("Rename a Debug Report")</h1> + <div class="close">X</div> + </header> + <div class="content"> + <form id="form-report-rename"> + <section class="form-section"> + <h2> + <label for="report-name-textbox">$_("Report Name")</label> + </h2> + <div class="field"> + <span> + $_("The name used to identify the report. Name can contain: letters, digits and hyphen (\"-\").") + </span> + <input type="text" class="text" id="report-name-textbox" name="name" /> + </div> + </section> + </form> + </div> + <footer> + <div class="btn-group"> + <button id="button-report-rename" class="btn-normal"><span class="text">$_("Submit")</span></button> + </div> + </footer> +</div> +<script> + kimchi.report_rename_main(); +</script>
_______________________________________________ Kimchi-devel mailing list Kimchi-devel@ovirt.org http://lists.ovirt.org/mailman/listinfo/kimchi-devel

Well, Modification time for that can fit this scenario, whereas what we did is renaming, which we did little about changing the content of the file. I think to the users, file generated time would probably be more valued. Best Regards Wang Wen On 05/22/2014 10:18 AM, Hongliang Wang wrote:
On 05/21/2014 06:04 PM, wenwang wrote:
Nice job!
But there still exists 2 minor issues that you might want to fix:
1) The 'Generate Time' Changes to the current time after renaming, which I think better be the time that user generated the file. ACK. Will send a patch. File creation time API is platform dependent, maybe we need use the modification time instead of change time in current implement. 2) List is not ordered after renaming. I think it's better be sorted by generate time. ACK.
Best Regards
Wang Wen
On 05/21/2014 05:09 PM, Hongliang Wang wrote:
Added rename page including HTML, CSS, and JS.
Signed-off-by: Hongliang Wang<hlwang@linux.vnet.ibm.com> --- ui/css/theme-default/report-rename.css | 22 ++++++++++++++ ui/js/src/kimchi.report_rename_main.js | 39 +++++++++++++++++++++++++ ui/pages/report-rename.html.tmpl | 53 ++++++++++++++++++++++++++++++++++ 3 files changed, 114 insertions(+) create mode 100644 ui/css/theme-default/report-rename.css create mode 100644 ui/js/src/kimchi.report_rename_main.js create mode 100644 ui/pages/report-rename.html.tmpl
diff --git a/ui/css/theme-default/report-rename.css b/ui/css/theme-default/report-rename.css new file mode 100644 index 0000000..959d577 --- /dev/null +++ b/ui/css/theme-default/report-rename.css @@ -0,0 +1,22 @@ +#report-rename-window { + height: 300px; + width: 400px; +} + +#report-rename-window .field { + font-size: 12px; +} + +#report-name-textbox { + -moz-box-sizing: border-box; + box-sizing: border-box; + margin: .5em 0; + width: 100%; +} + +#button-report-rename[disabled] { + background: #c0c0c0 url(../../images/theme-default/loading.gif) 7px + center no-repeat; + color: #DDD; + prenameing-left: 26px; +} diff --git a/ui/js/src/kimchi.report_rename_main.js b/ui/js/src/kimchi.report_rename_main.js new file mode 100644 index 0000000..3bb5020 --- /dev/null +++ b/ui/js/src/kimchi.report_rename_main.js @@ -0,0 +1,39 @@ +kimchi.report_rename_main = function() { + var renameReportForm = $('#form-report-rename'); + var submitButton = $('#button-report-rename'); + var nameTextbox = $('input[name="name"]', renameReportForm); + var submitForm = function(event) { + if(submitButton.prop('disabled')) { + return false; + } + var reportName = nameTextbox.val(); + var validator = RegExp("^[A-Za-z0-9-]*$"); + if (!validator.test(reportName)) { + kimchi.message.error.code('KCHDR6011M'); + return false; + } + var formData = renameReportForm.serializeObject(); + submitButton.prop('disabled', true); + nameTextbox.prop('disabled', true); + kimchi.renameReport(kimchi.selectedReport, formData, function(result) { + kimchi.window.close(); + kimchi.topic('kimchi/debugReportRenamed').publish({ + result: result + }); + }, function(result) { + var errText = result && + result['responseJSON'] && + result['responseJSON']['reason']; + kimchi.message.error(errText); + submitButton.prop('disabled', false); + nameTextbox.prop('disabled', false).focus(); + }); + + event.preventDefault(); + }; + + renameReportForm.on('submit', submitForm); + submitButton.on('click', submitForm); + + nameTextbox.val(kimchi.selectedReport).select(); +}; diff --git a/ui/pages/report-rename.html.tmpl b/ui/pages/report-rename.html.tmpl new file mode 100644 index 0000000..7fab0b6 --- /dev/null +++ b/ui/pages/report-rename.html.tmpl @@ -0,0 +1,53 @@ +#* + * Project Kimchi + * + * Copyright IBM, Corp. 2013 + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + *http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *# +#unicode UTF-8 +#import gettext +#from kimchi.cachebust import href +#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang) +#silent _ = t.gettext +#silent _t = t.gettext +<!DOCTYPE html> +<div id="report-rename-window" class="window"> + <header> + <h1 class="title">$_("Rename a Debug Report")</h1> + <div class="close">X</div> + </header> + <div class="content"> + <form id="form-report-rename"> + <section class="form-section"> + <h2> + <label for="report-name-textbox">$_("Report Name")</label> + </h2> + <div class="field"> + <span> + $_("The name used to identify the report. Name can contain: letters, digits and hyphen (\"-\").") + </span> + <input type="text" class="text" id="report-name-textbox" name="name" /> + </div> + </section> + </form> + </div> + <footer> + <div class="btn-group"> + <button id="button-report-rename" class="btn-normal"><span class="text">$_("Submit")</span></button> + </div> + </footer> +</div> +<script> + kimchi.report_rename_main(); +</script>
_______________________________________________ Kimchi-devel mailing list Kimchi-devel@ovirt.org http://lists.ovirt.org/mailman/listinfo/kimchi-devel

On 5/21/2014 5:09 PM, Hongliang Wang wrote:
Added rename page including HTML, CSS, and JS.
Signed-off-by: Hongliang Wang <hlwang@linux.vnet.ibm.com> --- ui/css/theme-default/report-rename.css | 22 ++++++++++++++ ui/js/src/kimchi.report_rename_main.js | 39 +++++++++++++++++++++++++ ui/pages/report-rename.html.tmpl | 53 ++++++++++++++++++++++++++++++++++ 3 files changed, 114 insertions(+) create mode 100644 ui/css/theme-default/report-rename.css create mode 100644 ui/js/src/kimchi.report_rename_main.js create mode 100644 ui/pages/report-rename.html.tmpl
diff --git a/ui/css/theme-default/report-rename.css b/ui/css/theme-default/report-rename.css new file mode 100644 index 0000000..959d577 --- /dev/null +++ b/ui/css/theme-default/report-rename.css @@ -0,0 +1,22 @@ +#report-rename-window { + height: 300px; + width: 400px; +} + +#report-rename-window .field { + font-size: 12px; +} + +#report-name-textbox { + -moz-box-sizing: border-box; + box-sizing: border-box; + margin: .5em 0; + width: 100%; +} + +#button-report-rename[disabled] { + background: #c0c0c0 url(../../images/theme-default/loading.gif) 7px + center no-repeat; + color: #DDD; + prenameing-left: 26px; +} diff --git a/ui/js/src/kimchi.report_rename_main.js b/ui/js/src/kimchi.report_rename_main.js new file mode 100644 index 0000000..3bb5020 --- /dev/null +++ b/ui/js/src/kimchi.report_rename_main.js @@ -0,0 +1,39 @@ +kimchi.report_rename_main = function() { + var renameReportForm = $('#form-report-rename'); + var submitButton = $('#button-report-rename'); + var nameTextbox = $('input[name="name"]', renameReportForm); + var submitForm = function(event) { + if(submitButton.prop('disabled')) { + return false; + } + var reportName = nameTextbox.val(); + var validator = RegExp("^[A-Za-z0-9-]*$"); + if (!validator.test(reportName)) { + kimchi.message.error.code('KCHDR6011M'); + return false; + } + var formData = renameReportForm.serializeObject(); + submitButton.prop('disabled', true); -- remvoe + nameTextbox.prop('disabled', true); -- remove + kimchi.renameReport(kimchi.selectedReport, formData, function(result) {
submitButton.prop('disabled', true); --add nameTextbox.prop('disabled', true); --add
+ kimchi.window.close(); + kimchi.topic('kimchi/debugReportRenamed').publish({ + result: result + }); + }, function(result) { + var errText = result && + result['responseJSON'] && + result['responseJSON']['reason']; + kimchi.message.error(errText); + submitButton.prop('disabled', false); -- remove + nameTextbox.prop('disabled', false).focus(); -- remove
nameTextbox.focus(); -- add
+ }); Only a recommend for code re-organize. + + event.preventDefault(); + }; + + renameReportForm.on('submit', submitForm); + submitButton.on('click', submitForm); + + nameTextbox.val(kimchi.selectedReport).select(); +}; diff --git a/ui/pages/report-rename.html.tmpl b/ui/pages/report-rename.html.tmpl new file mode 100644 index 0000000..7fab0b6 --- /dev/null +++ b/ui/pages/report-rename.html.tmpl @@ -0,0 +1,53 @@ +#* + * Project Kimchi + * + * Copyright IBM, Corp. 2013 + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *# +#unicode UTF-8 +#import gettext +#from kimchi.cachebust import href +#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang) +#silent _ = t.gettext +#silent _t = t.gettext +<!DOCTYPE html> +<div id="report-rename-window" class="window"> + <header> + <h1 class="title">$_("Rename a Debug Report")</h1> + <div class="close">X</div> + </header> + <div class="content"> + <form id="form-report-rename"> + <section class="form-section"> + <h2> + <label for="report-name-textbox">$_("Report Name")</label> + </h2> + <div class="field"> + <span> + $_("The name used to identify the report. Name can contain: letters, digits and hyphen (\"-\").") + </span> + <input type="text" class="text" id="report-name-textbox" name="name" /> + </div> + </section> + </form> + </div> + <footer> + <div class="btn-group"> + <button id="button-report-rename" class="btn-normal"><span class="text">$_("Submit")</span></button> + </div> + </footer> +</div> +<script> + kimchi.report_rename_main(); +</script>

On 05/22/2014 02:07 PM, Yu Xin Huo wrote:
On 5/21/2014 5:09 PM, Hongliang Wang wrote:
Added rename page including HTML, CSS, and JS.
Signed-off-by: Hongliang Wang <hlwang@linux.vnet.ibm.com> --- ui/css/theme-default/report-rename.css | 22 ++++++++++++++ ui/js/src/kimchi.report_rename_main.js | 39 +++++++++++++++++++++++++ ui/pages/report-rename.html.tmpl | 53 ++++++++++++++++++++++++++++++++++ 3 files changed, 114 insertions(+) create mode 100644 ui/css/theme-default/report-rename.css create mode 100644 ui/js/src/kimchi.report_rename_main.js create mode 100644 ui/pages/report-rename.html.tmpl
diff --git a/ui/css/theme-default/report-rename.css b/ui/css/theme-default/report-rename.css new file mode 100644 index 0000000..959d577 --- /dev/null +++ b/ui/css/theme-default/report-rename.css @@ -0,0 +1,22 @@ +#report-rename-window { + height: 300px; + width: 400px; +} + +#report-rename-window .field { + font-size: 12px; +} + +#report-name-textbox { + -moz-box-sizing: border-box; + box-sizing: border-box; + margin: .5em 0; + width: 100%; +} + +#button-report-rename[disabled] { + background: #c0c0c0 url(../../images/theme-default/loading.gif) 7px + center no-repeat; + color: #DDD; + prenameing-left: 26px; +} diff --git a/ui/js/src/kimchi.report_rename_main.js b/ui/js/src/kimchi.report_rename_main.js new file mode 100644 index 0000000..3bb5020 --- /dev/null +++ b/ui/js/src/kimchi.report_rename_main.js @@ -0,0 +1,39 @@ +kimchi.report_rename_main = function() { + var renameReportForm = $('#form-report-rename'); + var submitButton = $('#button-report-rename'); + var nameTextbox = $('input[name="name"]', renameReportForm); + var submitForm = function(event) { + if(submitButton.prop('disabled')) { + return false; + } + var reportName = nameTextbox.val(); + var validator = RegExp("^[A-Za-z0-9-]*$"); + if (!validator.test(reportName)) { + kimchi.message.error.code('KCHDR6011M'); + return false; + } + var formData = renameReportForm.serializeObject();
+ submitButton.prop('disabled', true); -- remvoe + nameTextbox.prop('disabled', true); -- remove It is used to block UI to avoid user re-edit and re-submit the form after he submits it and before the submission response returned. Will remain it. + kimchi.renameReport(kimchi.selectedReport, formData, function(result) {
submitButton.prop('disabled', true); --add nameTextbox.prop('disabled', true); --add
This callback is called after the request is processed successfully and submitButton and nameTextbox will be destroyed and removed from DOM tree with kimchi.window.close(); below. Though it's logically complete to enable fields that are disabled before. I'll add these 2 lines.
+ kimchi.window.close(); + kimchi.topic('kimchi/debugReportRenamed').publish({ + result: result + }); + }, function(result) { + var errText = result && + result['responseJSON'] && + result['responseJSON']['reason']; + kimchi.message.error(errText);
+ submitButton.prop('disabled', false); -- remove + nameTextbox.prop('disabled', false).focus(); -- remove
nameTextbox.focus(); -- add This is called in error callback so we need enabled fields that are disabled before. Will remain here.
+ }); Only a recommend for code re-organize. + + event.preventDefault(); + }; + + renameReportForm.on('submit', submitForm); + submitButton.on('click', submitForm); + + nameTextbox.val(kimchi.selectedReport).select(); +}; diff --git a/ui/pages/report-rename.html.tmpl b/ui/pages/report-rename.html.tmpl new file mode 100644 index 0000000..7fab0b6 --- /dev/null +++ b/ui/pages/report-rename.html.tmpl @@ -0,0 +1,53 @@ +#* + * Project Kimchi + * + * Copyright IBM, Corp. 2013 + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *# +#unicode UTF-8 +#import gettext +#from kimchi.cachebust import href +#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang) +#silent _ = t.gettext +#silent _t = t.gettext +<!DOCTYPE html> +<div id="report-rename-window" class="window"> + <header> + <h1 class="title">$_("Rename a Debug Report")</h1> + <div class="close">X</div> + </header> + <div class="content"> + <form id="form-report-rename"> + <section class="form-section"> + <h2> + <label for="report-name-textbox">$_("Report Name")</label> + </h2> + <div class="field"> + <span> + $_("The name used to identify the report. Name can contain: letters, digits and hyphen (\"-\").") + </span> + <input type="text" class="text" id="report-name-textbox" name="name" /> + </div> + </section> + </form> + </div> + <footer> + <div class="btn-group"> + <button id="button-report-rename" class="btn-normal"><span class="text">$_("Submit")</span></button> + </div> + </footer> +</div> +<script> + kimchi.report_rename_main(); +</script>
_______________________________________________ Kimchi-devel mailing list Kimchi-devel@ovirt.org http://lists.ovirt.org/mailman/listinfo/kimchi-devel

Enabled rename feature in host tab. Signed-off-by: Hongliang Wang <hlwang@linux.vnet.ibm.com> --- ui/js/src/kimchi.host.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/ui/js/src/kimchi.host.js b/ui/js/src/kimchi.host.js index 4c94fc1..ec656d5 100644 --- a/ui/js/src/kimchi.host.js +++ b/ui/js/src/kimchi.host.js @@ -304,6 +304,13 @@ kimchi.host_main = function() { label: i18n['KCHDR6008M'], disabled: true, onClick: function(event) { + var report = reportGrid.getSelected(); + if(!report) { + return; + } + + kimchi.selectedReport = report['name']; + kimchi.window.open('report-rename.html'); } }, { id: reportGridID + '-remove-button', @@ -352,6 +359,8 @@ kimchi.host_main = function() { } }], onRowSelected: function(row) { + $('#' + reportGridID + '-rename-button') + .prop('disabled', false); $('#' + reportGridID + '-remove-button') .prop('disabled', false); $('#' + reportGridID + '-download-button') @@ -475,6 +484,8 @@ kimchi.host_main = function() { listDebugReports(); kimchi.topic('kimchi/debugReportAdded') .subscribe(listDebugReports); + kimchi.topic('kimchi/debugReportRenamed') + .subscribe(listDebugReports); } }); }; @@ -788,5 +799,6 @@ kimchi.host_main = function() { reportGrid && reportGrid.destroy(); kimchi.topic('kimchi/debugReportAdded').unsubscribe(listDebugReports); + kimchi.topic('kimchi/debugReportRenamed').unsubscribe(listDebugReports); }); }; -- 1.8.1.4
participants (4)
-
Hongliang Wang
-
Sheldon
-
wenwang
-
Yu Xin Huo