# coding: utf-8
'''
Created on 03.12.2013

@author: v.popov
'''

import json

try:
    from ru.curs.showcase.core.jython import JythonDTO
except:
    from ru.curs.celesta.showcase import JythonDTO
try:
    from ru.curs.celesta.showcase.utils import XMLJSONConverter
except:
    pass


def buttons(context, main=None, add=None, filterinfo=None, session=None, elementId=None):
    u'''Функция для кнопок - Добавить, Редактировать, Удалить. '''

    if add == "row_clicked":
        buttonstyle = "blue"
    else:
        buttonstyle = "disabled"

    # Кнопка Добавить
    addButton = {"div":{"@class": "newbutton highbutton",
                        "span": {"@class": "blue xforms-trigger",
                                 "span": {"@class": "value",
                                          "button": {"@style": "width: 135px; text-align: center",
                                                     "@onclick": "gwtWebTextFunc('%s','1');" % elementId,
                                                     "span": {"@class": "xforms-label", "#text": "Добавить"
                                                              }
                                                     }

                                            }
                                 }
                        }
                 }

    # Кнопка Редактировать
    editButton = {"div":{"@class": "newbutton highbutton",
                        "span": {"@class": buttonstyle + ' xforms-trigger',
                                 "span": {"@class": "value",
                                          "button": {"@style": "width: 135px; text-align: center",
                                                     "@onclick": "gwtWebTextFunc('%s','2');" % elementId,
                                                     "span": {"@class": "xforms-label", "#text": "Редактировать"
                                                              }
                                                     }

                                            }
                                 }
                        }
                 }

    # Кнопка Удалить
    delButton = {"div":{"@class": "newbutton highbutton",
                        "span": {"@class": buttonstyle + ' xforms-trigger',
                                 "span": {"@class": "value",
                                          "button": {"@style": "width: 135px; text-align: center",
                                                     "@onclick": "var answer=confirm(''Вы действительно хотите удалить данную запись?''); if (answer) gwtWebTextFunc('%s','3');" % elementId,
                                                     "span": {"@class": "xforms-label", "#text": "Удалить"
                                                              }
                                                     }

                                            }
                                 }
                        }
                 }

    # Данные
    data = {"div": {"table": {"@cellpadding": "0px",
                              "@cellspacing": "1px",
                              "tr":{"td": [addButton,
                                    editButton,
                                    delButton
                                    ]
                                    }
                              }
                    }
            }

    # Настройки кнопки Добавить
    addButtonSettings = {"@name": "single_click",
                                  "@linkId": "1",
                                  "action": {
                                      "@show_in": "MODAL_WINDOW",
                                      "#sorted": [
                                          {"main_context": "current"},
                                          {"modalwindow": {"@caption": "Добавление записи"}},
                                          {"datapanel": {"@type": "current",
                                                           "@tab": "current",
                                                           "element": {"@id": "15",
                                                                       "add_context": "add"
                                                                       }
                                                           }
                                          }]}
                                  }


    # Настройки кнопки Редактировать
    editButtonSettings = {"@name": "single_click",
                                  "@linkId": "2",
                                  "action": {
                                      "@show_in": "MODAL_WINDOW",
                                      "#sorted": [
                                          {"main_context": "current"},
                                          {"modalwindow": {"@caption": "�зменение записи"}},
                                          {"datapanel": {
                                              "@type": "current",
                                              "@tab": "current",
                                              "element": {
                                                  "@id": "15",
                                                  "add_context": "edit"}
                                              }
                                          }]}
                                  }


    # Настройки кнопки Удалить. Нужно донастроить
    delButtonSettings = {"@name": "single_click",
                                  "@linkId": "3",
                                  "action": {
                                      "@show_in": "MODAL_WINDOW",
                                      "#sorted": [
                                          {"main_context": "current"},
                                          {"datapanel": {"@type": "current",
                                                           "@tab": "current"
                                                           }

                                          }]}
                                  }


    # Настройки
    if add == 'row_clicked':
        settings = {"properties": {"event": [addButtonSettings, editButtonSettings, delButtonSettings]
                                   }
                    }

    else:
        settings = {"properties": {"event": addButtonSettings
                                   }
                    }

    #print XMLJSONConverter(input=data).parse().encode('cp1251'), XMLJSONConverter(input=settings).parse().encode('cp1251')
    return JythonDTO(XMLJSONConverter.jsonToXml(json.dumps(data)), XMLJSONConverter.jsonToXml(json.dumps(settings)))