def index(): # set language try: lang = T.accepted_language.split('-')[0].replace('ja', 'jp') except: lang = 'en' image_chooser = DIALOG(title=T('Select an image'), close=T('close'), renderstyle=True, content=LOAD('plugin_elrte_widget', 'image_upload_or_choose', ajax=True)) file_chooser = DIALOG(title=T('Select a file'), close=T('close'), renderstyle=True, content=LOAD('plugin_elrte_widget', 'file_upload_or_choose', ajax=True)) fm_open = """function(callback, kind){ if (kind == 'elfinder') {%s;} else {%s;} jQuery.data(document.body, 'elrte_callback', callback) }""" % (file_chooser.show(), image_chooser.show()) cssfiles = [URL('static', 'css/base.css')] ################################ The core ###################################### # Inject the elrte widget # You can specify the language for the editor, and include your image chooser. # In this demo, the image chooser uses the uploadify plugin. # If you want to edit contents with css applied, pass the css file urls for an argument. db.product.description.widget = ElrteWidget() db.product.description.widget.settings.lang = lang db.product.description.widget.settings.fm_open = fm_open db.product.description.widget.settings.cssfiles = cssfiles ################################################################################ form = SQLFORM(db.product) if form.accepts(request.vars, session): session.flash = 'submitted %s' % form.vars redirect(URL('index')) return dict(form=form)
def _get_elrte_widget(self): T = current.T try: lang = T.accepted_language.split('-')[0].replace('ja', 'jp') except: lang = 'en' from plugin_dialog import DIALOG image_chooser = DIALOG(title=T('Select an image'), close_button=T('close'), content=self.settings.image_crud) file_chooser = DIALOG(title=T('Select a file'), close_button=T('close'), content=self.settings.file_crud, ajax=True) fm_open = """function(callback, kind) { if (kind == 'elfinder') {%s;} else {%s;} jQuery(document.body).bind('managed_html_file_selected managed_html_image_selected', function(e, filename) { callback('%s'.replace('__filename__', filename)); jQuery('.managed_html_dialog').hide(); }); }""" % (file_chooser.show(), image_chooser.show(), self.settings.upload('__filename__')) # TODO setting for managed_html_file_selected from plugin_elrte_widget import ElrteWidget widget = ElrteWidget(lang=lang, cssfiles=self.settings.text_widget_cssfiles, fm_open=fm_open) _files = [URL('static','plugin_elrte_widget/css/elrte.min.css'), URL('static','plugin_elrte_widget/css/elrte-inner.css'), URL('static','plugin_elrte_widget/css/smoothness/jquery-ui-1.8.13.custom.css'), # URL('static','plugin_elrte_widget/js/jquery-ui-1.8.13.custom.min.js'), # do not use elrte's jquery-ui URL('static','plugin_elrte_widget/js/elrte.min.js')] if lang: _files.append(URL('static','plugin_elrte_widget/js/i18n/elrte.%s.js' % lang)) widget.settings.files = _files return widget
def index(): dialog = DIALOG(LOAD(f='inner', ajax=True), title='Test', close_button='close', renderstyle=True) return dict(dialog=A( 'show dialog', _href='#', _onclick='%s;return false' % dialog.show()))
def _file_widget(self, field, value, download_url=None, **attributes): file_type = attributes.get('file_type') T = current.T el_id = '%s_%s' % (field._tablename, field.name) from plugin_dialog import DIALOG image_chooser = DIALOG(title=T('Select %s' % file_type), close_button=T('close'), content=LOAD(url=URL(args=current.request.args, vars={FILE_GRID_KEYWORD % file_type:True}), ajax=True), onclose='jQuery(document.body).trigger("managed_html_file_selected", "");', _id='managed_html_%s_chooser' % file_type, _class='managed_html_dialog') _record = self.db(self.settings.table_file.name==value ).select(self.settings.table_file.thumbnail).first() thumbnail = _record and _record.thumbnail or '' from gluon.sqlhtml import UploadWidget return DIV(INPUT(_type='button', _value='Select', _onclick=""" jQuery(document.body).one('managed_html_file_selected', function(e, name, thumbnail) { if(name!="") { var url = "%(upload)s".replace('__filename__', name); jQuery("#%(id)s__hidden").attr('value', name); var ext = name.split('.').slice(-1); var a = jQuery("#%(id)s__file a"); a.attr('href', url); if(thumbnail!="") { var thumbnail_url = "%(upload)s".replace('__filename__', thumbnail); a.html("<img src='"+thumbnail_url+"' style='max-width:150px;max-height:150px;'/>"); } else { a.html("file"); } jQuery('.managed_html_dialog').hide(); } }); %(show)s; return false;""" % dict(id=el_id, show=image_chooser.show(), upload=self.settings.upload('__filename__'))), DIV(self._file_represent(value, thumbnail, 150, 150), _id='%s__file' % el_id, _style='margin-top:5px;'), DIV(INPUT(_type='checkbox', _onclick=""" if(this.checked) { if(!confirm("%(confirm)s")) { this.checked=false; } else { jQuery("#%(id)s__hidden").attr('value', ''); jQuery("#%(id)s a").html(""); } }""" % dict(confirm=current.T('Are you sure you want to delete this object?'), id=el_id), _name=field.name + UploadWidget.ID_DELETE_SUFFIX), UploadWidget.DELETE_FILE, _style='margin-top:5px;'), INPUT(_type='hidden', _value=value, _name=field.name, _id='%s__hidden' % el_id, requires=field.requires), _id=el_id)
def index(): # set language try: lang = T.accepted_language.split('-')[0].replace('ja', 'jp') except: lang = 'en' image_chooser = DIALOG(title=T('Select an image'), close=T('close'), renderstyle=True, content=LOAD('plugin_elrte_widget', 'image_upload_or_choose', ajax=True)) file_chooser = DIALOG(title=T('Select a file'), close=T('close'), renderstyle=True, content=LOAD('plugin_elrte_widget', 'file_upload_or_choose', ajax=True)) fm_open = """function(callback, kind){ if (kind == 'elfinder') {%s;} else {%s;} jQuery.data(document.body, 'elrte_callback', callback) }""" % (file_chooser.show(), image_chooser.show()) cssfiles = [URL('static','css/base.css')] ################################ The core ###################################### # Inject the elrte widget # You can specify the language for the editor, and include your image chooser. # In this demo, the image chooser uses the uploadify plugin. # If you want to edit contents with css applied, pass the css file urls for an argument. db.product.description.widget = ElrteWidget(lang=lang, fm_open=fm_open, cssfiles=cssfiles) ################################################################################ form = SQLFORM(db.product) if form.accepts(request.vars, session): session.flash = 'submitted %s' % form.vars redirect(URL('index')) return dict(form=form)
def text_widget(self, field, value, **attributes): T = current.T try: lang = T.accepted_language.split('-')[0].replace('ja', 'jp') except: lang = 'en' from plugin_dialog import DIALOG image_chooser = DIALOG(title=T('Select an image'), close_button=T('close'), content=LOAD(url=URL(args=(current.request.args or []) + ['image_chooser'], vars={self.file_grid_keyword % 'image': True}), ajax=True), onclose='jQuery(document.body).trigger("managed_html_file_selected", "");', _id='managed_html_image_chooser', _class='managed_html_dialog') file_chooser = DIALOG(title=T('Select a file'), close_button=T('close'), content=LOAD(url=URL(args=(current.request.args or []) + ['file_chooser'], vars={self.file_grid_keyword % 'file': True}), ajax=True), onclose='jQuery(document.body).trigger("managed_html_file_selected", "");', _id='managed_html_file_chooser', _class='managed_html_dialog') fm_open = """function(callback, kind) { if (kind == 'elfinder') {%s;} else {%s;} jQuery(document.body).one('managed_html_file_selected', function(e, filename) { if(filename != "") { var data = '%s'.replace('__filename__', filename); if (kind == 'elfinder') { data = '<a href="'+data+'" >FILE</a>'; } callback(data); jQuery('.managed_html_dialog').hide(); }}); }""" % (file_chooser.show(), image_chooser.show(), self.settings.upload('__filename__')) # TODO setting for managed_html_file_selected from plugin_elrte_widget import ElrteWidget widget = ElrteWidget() widget.settings.lang = lang widget.settings.cssfiles = self.settings.text_widget_cssfiles widget.settings.fm_open = fm_open return widget(field, value, **attributes)
def text_widget(self, field, value, **attributes): T = current.T try: lang = T.accepted_language.split('-')[0].replace('ja', 'jp') except: lang = 'en' from plugin_dialog import DIALOG image_chooser = DIALOG(title=T('Select an image'), close_button=T('close'), content=LOAD(url=URL(args=current.request.args, vars={FILE_GRID_KEYWORD % 'image':True}), ajax=True), onclose='jQuery(document.body).trigger("managed_html_file_selected", "");', _id='managed_html_image_chooser', _class='managed_html_dialog') # file_chooser = # TODO fm_open = """function(callback, kind) { if (kind == 'elfinder') {%s;} else {%s;} jQuery(document.body).bind('managed_html_file_selected managed_html_file_selected', function(e, filename) { callback('%s'.replace('__filename__', filename)); jQuery('.managed_html_dialog').hide(); }); }""" % ('', #file_chooser.show(), image_chooser.show(), self.settings.upload('__filename__')) # TODO setting for managed_html_file_selected from plugin_elrte_widget import ElrteWidget widget = ElrteWidget(lang=lang, cssfiles=self.settings.text_widget_cssfiles, fm_open=fm_open) _files = [URL('static','plugin_elrte_widget/css/elrte.min.css'), URL('static','plugin_elrte_widget/css/elrte-inner.css'), URL('static','plugin_elrte_widget/css/smoothness/jquery-ui-1.8.13.custom.css'), # URL('static','plugin_elrte_widget/js/jquery-ui-1.8.13.custom.min.js'), # do not use elrte's jquery-ui URL('static','plugin_elrte_widget/js/elrte.min.js')] if lang: _files.append(URL('static','plugin_elrte_widget/js/i18n/elrte.%s.js' % lang)) widget.settings.files = _files return widget(field, value, **attributes)
def _get_elrte_widget(self): T = current.T try: lang = T.accepted_language.split('-')[0].replace('ja', 'jp') except: lang = 'en' from plugin_dialog import DIALOG image_chooser = DIALOG(title=T('Select an image'), close_button=T('close'), content=self.settings.image_crud) file_chooser = DIALOG(title=T('Select a file'), close_button=T('close'), content=self.settings.file_crud, ajax=True) fm_open = """function(callback, kind) { if (kind == 'elfinder') {%s;} else {%s;} jQuery(document.body).bind('managed_html_file_selected managed_html_image_selected', function(e, filename) { callback('%s'.replace('__filename__', filename)); jQuery('.managed_html_dialog').hide(); }); }""" % (file_chooser.show(), image_chooser.show(), self.settings.upload('__filename__') ) # TODO setting for managed_html_file_selected from plugin_elrte_widget import ElrteWidget widget = ElrteWidget(lang=lang, cssfiles=self.settings.text_widget_cssfiles, fm_open=fm_open) _files = [ URL('static', 'plugin_elrte_widget/css/elrte.min.css'), URL('static', 'plugin_elrte_widget/css/elrte-inner.css'), URL( 'static', 'plugin_elrte_widget/css/smoothness/jquery-ui-1.8.13.custom.css' ), # URL('static','plugin_elrte_widget/js/jquery-ui-1.8.13.custom.min.js'), # do not use elrte's jquery-ui URL('static', 'plugin_elrte_widget/js/elrte.min.js') ] if lang: _files.append( URL('static', 'plugin_elrte_widget/js/i18n/elrte.%s.js' % lang)) widget.settings.files = _files return widget
def switch_mode(self): settings, request, response = self.settings, current.request, current.response self.view_mode = request.args(0) if self.view_mode not in (EDIT_MODE, PREVIEW_MODE): self.view_mode = LIVE_MODE return response.files.append( URL('static', 'plugin_managed_html/managed_html.css')) response.files.append( URL('static', 'plugin_managed_html/managed_html.js')) response.files.append( URL('static', 'plugin_managed_html/jquery-ui-1.8.16.custom.min.js')) response.meta.managed_html_home_url = settings.home_url response.meta.managed_html_home_label = settings.home_label response.meta.managed_html_live_url = settings.URL( args=request.args[1:], vars=request.vars, scheme='http') if self.view_mode in (EDIT_MODE, PREVIEW_MODE): if self.view_mode == EDIT_MODE: if (self._image_grid_keyword in current.request.vars or current.request.args(1) == self._image_grid_keyword): raise HTTP(200, self.image_grid()) response.meta.managed_html_preview_url = settings.URL( args=[PREVIEW_MODE] + request.args[1:], vars=request.vars) elif self.view_mode == PREVIEW_MODE: response.meta.managed_html_edit_url = settings.URL( args=[EDIT_MODE] + request.args[1:], vars=request.vars) from plugin_dialog import DIALOG T = current.T response.meta.managed_html_show_page_crud = DIALOG( title=T('+ Page'), close_button=T('close'), content=settings.page_crud).show()
def index(): dialog = DIALOG(LOAD(c='pacientes', f='registro', ajax=True), title='Nuevo Paciente', close_button='close', renderstyle=True) return dict(dialog=A('Nuevo Paciente', _href='#', _class='boton',_onclick='%s;return false' % dialog.show()))
def image_widget(self, field, value, download_url=None, **attributes): T = current.T el_id = '%s_%s' % (field._tablename, field.name) from plugin_dialog import DIALOG image_chooser = DIALOG(title=T('Select an image'), close_button=T('close'), content=LOAD(url=URL( args=current.request.args, vars={self._image_grid_keyword: True}), ajax=True), onclose=""" jQuery(document.body).trigger("managed_html_image_selected", "");""", _id='managed_html_image_chooser', _class='managed_html_dialog') from gluon.sqlhtml import UploadWidget return DIV(INPUT(_type='button', _value='Select', _onclick=""" jQuery(document.body).one('managed_html_image_selected', function(e, filename) { if(filename!="") { var url = "%(upload)s".replace('__filename__', filename); jQuery("#%(id)s__hidden").attr('value', filename); var ext = filename.split('.').slice(-1); var a = jQuery("#%(id)s__file a"); a.attr('href', url); if (ext=='png' || ext=='jpg' || ext=='jpeg' || ext=='gif'|| ext=='bmp') { a.html("<img src='"+url+"' style='max-width:150px;max-height:150px;'/>"); } else { a.html("file"); } jQuery('.managed_html_dialog').hide(); } }); %(show)s; return false;""" % dict(id=el_id, show=image_chooser.show(), upload=self.settings.upload('__filename__'))), DIV(self.file_represent(value, 150, 150), _id='%s__file' % el_id, _style='margin-top:5px;'), DIV(INPUT( _type='checkbox', _onclick=""" if(this.checked) { if(!confirm("%(confirm)s")) { this.checked=false; } else { jQuery("#%(id)s__hidden").attr('value', ''); jQuery("#%(id)s a").html(""); } } """ % dict(confirm=current.T( 'Are you sure you want to delete this object?'), id=el_id), _name=field.name + UploadWidget.ID_DELETE_SUFFIX), UploadWidget.DELETE_FILE, _style='margin-top:5px;'), INPUT(_type='hidden', _value=value, _name=field.name, _id='%s__hidden' % el_id, requires=field.requires), _id=el_id)