diff --git a/server/src/uds/services/OpenNebula/on/template.py b/server/src/uds/services/OpenNebula/on/template.py index 90b2102f3..2d6c91a95 100644 --- a/server/src/uds/services/OpenNebula/on/template.py +++ b/server/src/uds/services/OpenNebula/on/template.py @@ -38,7 +38,7 @@ from defusedxml import minidom # Python bindings for OpenNebula from .common import sanitizeName -__updated__ = '2017-03-06' +__updated__ = '2017-03-07' logger = logging.getLogger(__name__) @@ -142,7 +142,10 @@ def remove(api, templateId): for dsk in template.getElementsByTagName('DISK'): imgIds = dsk.getElementsByTagName('IMAGE_ID') if len(imgIds) == 0: - node = dsk.getElementsByTagName('IMAGE')[0].childNodes[0] + try: + node = dsk.getElementsByTagName('IMAGE')[0].childNodes[0] + except IndexError: + continue imgId = imgs[node.data] else: node = imgIds[0].childNodes[0] @@ -189,7 +192,10 @@ def checkPublished(api, templateId): for dsk in template.getElementsByTagName('DISK'): imgIds = dsk.getElementsByTagName('IMAGE_ID') if len(imgIds) == 0: - node = dsk.getElementsByTagName('IMAGE')[0].childNodes[0] + try: + node = dsk.getElementsByTagName('IMAGE')[0].childNodes[0] + except IndexError: + continue imgId = imgs[node.data] else: node = imgIds[0].childNodes[0] diff --git a/server/src/uds/static/adm/js/gui-d-calendar.coffee b/server/src/uds/static/adm/js/gui-d-calendar.coffee index da6f66a13..71f196591 100644 --- a/server/src/uds/static/adm/js/gui-d-calendar.coffee +++ b/server/src/uds/static/adm/js/gui-d-calendar.coffee @@ -20,7 +20,7 @@ gui.calendars.link = -> 'YEARLY': [gettext('year'), gettext('years'), gettext('Yearly')] 'WEEKDAYS': ['', '', gettext('Weekdays')] - dunitDct = + dunitDct = 'MINUTES': gettext('Minutes') 'HOURS': gettext('Hours') 'DAYS': gettext('Days') @@ -58,7 +58,7 @@ gui.calendars.link = -> else if fld == "duration" return data + " " + dunitDct[record.duration_unit] return fld - + newEditFnc = (rules, forEdit) -> days = (w.substr(0, 3) for w in weekDays) sortFnc = (a, b) -> @@ -197,7 +197,7 @@ gui.calendars.link = -> else now = Math.floor(new Date().getTime() / 1000) fillDateTime '#id-rule-start', now - + # @@ -240,8 +240,31 @@ gui.calendars.link = -> updateSummary modalId ) + $form = $(modalId + " form") + + $form.validate + debug: false + ignore: ':hidden:not("select"):not(".modal_field_data")' + errorClass: "text-danger" + validClass: "has-success" + focusInvalid: true + highlight: (element) -> + group = $(element).closest(".form-group") + group.addClass "has-error" + return + + showErrors: (errorMap, errorList) -> + this.defaultShowErrors() + + success: (element) -> + $(element).closest(".form-group").removeClass "has-error" + $(element).remove() + return + # Save $(modalId + " .button-accept").click -> + return unless $form.valid() + data = readFields modalId closeAndRefresh = () -> @@ -290,7 +313,7 @@ gui.calendars.link = -> icon: 'calendars' callback: renderer container: "rules-placeholder" - rowSelect: "single" + rowSelect: "multi" buttons: [ "new" "edit" diff --git a/server/src/uds/templates/uds/admin/tmpl/calendar_rule.html b/server/src/uds/templates/uds/admin/tmpl/calendar_rule.html index eb2edeb57..a11d6b268 100644 --- a/server/src/uds/templates/uds/admin/tmpl/calendar_rule.html +++ b/server/src/uds/templates/uds/admin/tmpl/calendar_rule.html @@ -6,14 +6,14 @@