Changeset 1191

Show
Ignore:
Timestamp:
07/31/08 03:48:20
Author:
piv
Message:

finished ajax action adding

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • qPloneTabs/branches/quintagroup.plonetabs/trunk/quintagroup/plonetabs/browser/plonetabs.py

    r1190 r1191  
    451451        # XXX TODO: fade effect during removing, to do this we need kukit js action/command plugin 
    452452        ksscore.deleteNode(ksscore.getHtmlIdSelector(id)) 
    453         self.kss_checkReorderControls(category
     453        self.kss_checkReorderControls(cat_name
    454454        self.updatePage(cat_name) 
    455455     
     
    469469         
    470470        # if not errors find (or create) category and set action to it 
     471        ksscore = self.getCommandSet('core') 
    471472        kssplone = self.getCommandSet('plone') 
    472473        if not errors: 
     
    475476            # update client 
    476477            # add one more action to actions list 
    477             ksscore = self.getCommandSet('core') 
    478478            content = self.getActionsList(category=cat_name, tabs=[action,]) 
    479479            ksscore.insertHTMLAsLastChild(ksscore.getHtmlIdSelector('tabslist'), content) 
     480             
     481            # update reorder controls 
     482            self.kss_checkReorderControls(cat_name) 
    480483             
    481484            # hide adding form 
     
    492495            self.updatePage(cat_name) 
    493496        else: 
     497            # expand advanced section if there are errors in id or condition 
     498            if errors.has_key('id') or errors.has_key('available_expr'): 
     499                self.kss_toggleCollapsible(ksscore.getCssSelector('#addaction .collapseAdvanced .headerAdvanced'), collapse='false') 
     500             
    494501            # send error message 
    495502            kssplone.issuePortalMessage(_(u"Please correct the indicated errors."), msgtype="error") 
     
    647654    # 
    648655     
    649     def kss_checkReorderControls(self, category): 
     656    def kss_checkReorderControls(self, cat_name): 
    650657        """ Add "noitems" class to Reorder controls to hide them if category is empty """ 
    651         if not filter(lambda x: IAction.providedBy(x), category.objectValues()): 
    652             ksscore = self.getCommandSet('core') 
    653             ksscore.addClass(ksscore.getHtmlIdSelector("reorder"), value="noitems") 
     658        ksscore = self.getCommandSet('core') 
     659        selector = ksscore.getHtmlIdSelector("reorder") 
     660        category = self.getActionCategory(cat_name) 
     661        if filter(lambda x: IAction.providedBy(x), category.objectValues()): 
     662            ksscore.removeClass(selector, value="noitems") 
     663        else: 
     664            ksscore.addClass(selector, value="noitems") 
    654665     
    655666    def kss_validateAction(self, id, cat_name): 
  • qPloneTabs/branches/quintagroup.plonetabs/trunk/quintagroup/plonetabs/browser/resources/plonetabs.kss

    r1190 r1191  
    2929    action-client: addClass; 
    3030    addClass-value: collapsedBlock; 
     31} 
     32 
     33/* Save initial value of title field on adding form */ 
     34#actname:load { 
     35    action-client: setStateVar; 
     36    setStateVar-varname: plonetabs-addingTitle; 
     37    setStateVar-value: currentFormVar(); 
    3138} 
    3239 
     
    112119} 
    113120 
     121/* autogenerate value for id field */ 
     122#actname:keyup { 
     123    action-client: plonetabs-generateId; 
     124    plonetabs-generateId-target: actid; 
     125} 
     126 
    114127/* Actions edit */ 
    115128#tabslist .tab-title:click { 
  • qPloneTabs/branches/quintagroup.plonetabs/trunk/quintagroup/plonetabs/plugins/configure.zcml

    r1190 r1191  
    3939        params_optional="" 
    4040        /> 
     41     
     42    <kss:action 
     43        name="plonetabs-generateId" 
     44        command_factory="selector" 
     45        jsfile="plugin.js" 
     46        params_mandatory="target" 
     47        params_optional="" 
     48        /> 
    4149 
    4250     
  • qPloneTabs/branches/quintagroup.plonetabs/trunk/quintagroup/plonetabs/plugins/plugin.js

    r1190 r1191  
    7474    oper.evaluateParameters([], {}); 
    7575 
    76     var form = oper.node; 
    77     alert(form.name + 'form reseted'); 
     76    if (typeof(oper.node.reset) == "function") { 
     77        oper.node.reset(); 
     78    } else { 
     79        kukit.logWarning("plonetabs-resetForm: reset could only be executed on form element"); 
     80    } 
    7881 
    7982}); 
     
    8689    alert(oper.parms.message); 
    8790}); 
     91 
     92var PLONETABS_ADD_PATTERN = new RegExp('[^a-zA-Z0-9-_~,.\\$\\(\\)# ]','g'); 
     93 
     94kukit.actionsGlobalRegistry.register("plonetabs-generateId", function(oper) { 
     95    oper.componentName = "[plonetabs-generateId] action"; 
     96    oper.evaluateParameters(["target"], {}); 
     97 
     98    var source = oper.node; 
     99    var target = document.getElementById(oper.parms.target); 
     100 
     101    if (target == null) { 
     102        kukit.logWarning("plonetabs-generateId: target element ('" + oper.parms.target + "') not found"); 
     103        return ; 
     104    } 
     105 
     106    if (target.value == kukit.engine.stateVariables['plonetabs-addingTitle'].replace(PLONETABS_ADD_PATTERN, '')) { 
     107        target.value = source.value.replace(PLONETABS_ADD_PATTERN, ''); 
     108    } 
     109    kukit.engine.stateVariables['plonetabs-addingTitle'] = source.value; 
     110 
     111});