From db9e693c7f8536e03261c7ad4d85e9b1e6c4b353 Mon Sep 17 00:00:00 2001 From: llaffont <llaffont@git-test.afi-sa.fr> Date: Mon, 8 Oct 2012 10:58:42 +0000 Subject: [PATCH] Editeur CSS: sauvegarde du CSS --- amber/afi/js/AFI-Core.deploy.js | 34 +++++++++++++++++++++++ amber/afi/js/AFI-Core.js | 49 +++++++++++++++++++++++++++++++++ amber/afi/js/AFI-OPAC.deploy.js | 16 ++++++++++- amber/afi/js/AFI-OPAC.js | 29 +++++++++++++++---- amber/afi/st/AFI-Core.st | 16 +++++++++++ amber/afi/st/AFI-OPAC.st | 16 ++++++++++- library/Class/ScriptLoader.php | 3 +- 7 files changed, 155 insertions(+), 8 deletions(-) diff --git a/amber/afi/js/AFI-Core.deploy.js b/amber/afi/js/AFI-Core.deploy.js index c9449541367..b355b26d30a 100644 --- a/amber/afi/js/AFI-Core.deploy.js +++ b/amber/afi/js/AFI-Core.deploy.js @@ -174,6 +174,40 @@ return self;} smalltalk.Ajax); +smalltalk.Ajax.klass.iVarNames = ['opacBaseUrl']; +smalltalk.addMethod( +unescape('_controller_action_'), +smalltalk.method({ +selector: unescape('controller%3Aaction%3A'), +fn: function (controllerName, actionName){ +var self=this; +return smalltalk.send(self, "_module_controller_action_", ["opac", controllerName, actionName]); +return self;} +}), +smalltalk.Ajax.klass); + +smalltalk.addMethod( +unescape('_module_controller_action_'), +smalltalk.method({ +selector: unescape('module%3Acontroller%3Aaction%3A'), +fn: function (moduleName, controllerName, actionName){ +var self=this; +return smalltalk.send(self, "_url_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send((typeof baseUrl == 'undefined' ? nil : baseUrl), "__comma", [unescape("/")]), "__comma", [moduleName]), "__comma", [unescape("/")]), "__comma", [controllerName]), "__comma", [unescape("/")]), "__comma", [actionName])]); +return self;} +}), +smalltalk.Ajax.klass); + +smalltalk.addMethod( +unescape('_opacBaseUrl_'), +smalltalk.method({ +selector: unescape('opacBaseUrl%3A'), +fn: function (aString){ +var self=this; +(self['@opacBaseUrl']=aString); +return self;} +}), +smalltalk.Ajax.klass); + smalltalk.addMethod( unescape('_url_'), smalltalk.method({ diff --git a/amber/afi/js/AFI-Core.js b/amber/afi/js/AFI-Core.js index 0ae96e8d5fa..d836a16e37d 100644 --- a/amber/afi/js/AFI-Core.js +++ b/amber/afi/js/AFI-Core.js @@ -249,6 +249,55 @@ referencedClasses: [] smalltalk.Ajax); +smalltalk.Ajax.klass.iVarNames = ['opacBaseUrl']; +smalltalk.addMethod( +unescape('_controller_action_'), +smalltalk.method({ +selector: unescape('controller%3Aaction%3A'), +category: 'initialize', +fn: function (controllerName, actionName){ +var self=this; +return smalltalk.send(self, "_module_controller_action_", ["opac", controllerName, actionName]); +return self;}, +args: ["controllerName", "actionName"], +source: unescape('controller%3AcontrollerName%20action%3AactionName%0A%09%5E%20self%20module%3A%20%27opac%27%20controller%3A%20controllerName%20action%3A%20actionName'), +messageSends: ["module:controller:action:"], +referencedClasses: [] +}), +smalltalk.Ajax.klass); + +smalltalk.addMethod( +unescape('_module_controller_action_'), +smalltalk.method({ +selector: unescape('module%3Acontroller%3Aaction%3A'), +category: 'initialize', +fn: function (moduleName, controllerName, actionName){ +var self=this; +return smalltalk.send(self, "_url_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send((typeof baseUrl == 'undefined' ? nil : baseUrl), "__comma", [unescape("/")]), "__comma", [moduleName]), "__comma", [unescape("/")]), "__comma", [controllerName]), "__comma", [unescape("/")]), "__comma", [actionName])]); +return self;}, +args: ["moduleName", "controllerName", "actionName"], +source: unescape('module%3AmoduleName%20controller%3AcontrollerName%20action%3AactionName%0A%09%5E%20self%20url%3A%20baseUrl%2C%27/%27%2CmoduleName%2C%27/%27%2CcontrollerName%2C%27/%27%2CactionName'), +messageSends: ["url:", unescape("%2C")], +referencedClasses: [] +}), +smalltalk.Ajax.klass); + +smalltalk.addMethod( +unescape('_opacBaseUrl_'), +smalltalk.method({ +selector: unescape('opacBaseUrl%3A'), +category: 'accessor', +fn: function (aString){ +var self=this; +(self['@opacBaseUrl']=aString); +return self;}, +args: ["aString"], +source: unescape('opacBaseUrl%3A%20aString%0A%09opacBaseUrl%20%3A%3D%20aString'), +messageSends: [], +referencedClasses: [] +}), +smalltalk.Ajax.klass); + smalltalk.addMethod( unescape('_url_'), smalltalk.method({ diff --git a/amber/afi/js/AFI-OPAC.deploy.js b/amber/afi/js/AFI-OPAC.deploy.js index 1de37e2dae1..99c91326224 100644 --- a/amber/afi/js/AFI-OPAC.deploy.js +++ b/amber/afi/js/AFI-OPAC.deploy.js @@ -6,7 +6,21 @@ smalltalk.method({ selector: unescape('commit'), fn: function (){ var self=this; +var ajax=nil; +(ajax=smalltalk.send((smalltalk.Ajax || Ajax), "_module_controller_action_", ["admin", "profil", unescape("commit-css")])); +(function($rec){smalltalk.send($rec, "_at_put_", ["type", "PUT"]);smalltalk.send($rec, "_at_put_", ["data", smalltalk.send(self, "_contents", [])]);return smalltalk.send($rec, "_at_put_", ["contentType", unescape("text/css%3Bcharset%3DUTF-8")]);})(smalltalk.send(ajax, "_options", [])); +(function($rec){smalltalk.send($rec, "_onErrorDo_", [(function(){return smalltalk.send((typeof window == 'undefined' ? nil : window), "_alert_", ["Erreur lors de la sauvegarde: "]);})]);smalltalk.send($rec, "_onSuccessDo_", [(function(){return smalltalk.send((typeof window == 'undefined' ? nil : window), "_alert_", [unescape("Fichier%20CSS%20sauvegard%E9")]);})]);return smalltalk.send($rec, "_send", []);})(ajax); +return self;} +}), +smalltalk.AFICssEditor); +smalltalk.addMethod( +unescape('_contents'), +smalltalk.method({ +selector: unescape('contents'), +fn: function (){ +var self=this; +return smalltalk.send(self['@sourceArea'], "_val", []); return self;} }), smalltalk.AFICssEditor); @@ -65,7 +79,7 @@ fn: function (html){ var self=this; (self['@sourceArea']=smalltalk.send((smalltalk.AFISourceArea || AFISourceArea), "_new", [])); smalltalk.send(self['@sourceArea'], "_renderOn_", [html]); -smalltalk.send(self, "_refreshContents", []); +(function($rec){smalltalk.send($rec, "_loadCss", []);return smalltalk.send($rec, "_refreshContents", []);})(self); smalltalk.send(self['@sourceArea'], "_onChange_", [(function(){return smalltalk.send(self, "_updateStyleTag", []);})]); return self;} }), diff --git a/amber/afi/js/AFI-OPAC.js b/amber/afi/js/AFI-OPAC.js index f7fa997386b..e0fe55c60b0 100644 --- a/amber/afi/js/AFI-OPAC.js +++ b/amber/afi/js/AFI-OPAC.js @@ -7,11 +7,30 @@ selector: unescape('commit'), category: 'actions', fn: function (){ var self=this; +var ajax=nil; +(ajax=smalltalk.send((smalltalk.Ajax || Ajax), "_module_controller_action_", ["admin", "profil", unescape("commit-css")])); +(function($rec){smalltalk.send($rec, "_at_put_", ["type", "PUT"]);smalltalk.send($rec, "_at_put_", ["data", smalltalk.send(self, "_contents", [])]);return smalltalk.send($rec, "_at_put_", ["contentType", unescape("text/css%3Bcharset%3DUTF-8")]);})(smalltalk.send(ajax, "_options", [])); +(function($rec){smalltalk.send($rec, "_onErrorDo_", [(function(){return smalltalk.send((typeof window == 'undefined' ? nil : window), "_alert_", ["Erreur lors de la sauvegarde: "]);})]);smalltalk.send($rec, "_onSuccessDo_", [(function(){return smalltalk.send((typeof window == 'undefined' ? nil : window), "_alert_", [unescape("Fichier%20CSS%20sauvegard%E9")]);})]);return smalltalk.send($rec, "_send", []);})(ajax); +return self;}, +args: [], +source: unescape('commit%0A%09%7Cajax%7C%20%0A%09ajax%20%3A%3D%20Ajax%20module%3A%20%27admin%27%20controller%3A%20%27profil%27%20action%3A%20%27commit-css%27.%0A%09ajax%20options%20%0A%09%09%09at%3A%20%27type%27%20put%3A%20%27PUT%27%3B%0A%09%09%09at%3A%20%27data%27%20put%3A%20self%20contents%3B%0A%09%09%09at%3A%20%27contentType%27%20put%3A%20%27text/css%3Bcharset%3DUTF-8%27.%0A%09ajax%20%0A%09%09onErrorDo%3A%20%5Bwindow%20alert%3A%20%27Erreur%20lors%20de%20la%20sauvegarde%3A%20%27%20%5D%3B%0A%09%09onSuccessDo%3A%20%5Bwindow%20alert%3A%20%27Fichier%20CSS%20sauvegard%E9%27%20%5D%3B%0A%09%09send'), +messageSends: ["module:controller:action:", "at:put:", "contents", "options", "onErrorDo:", "alert:", "onSuccessDo:", "send"], +referencedClasses: ["Ajax"] +}), +smalltalk.AFICssEditor); +smalltalk.addMethod( +unescape('_contents'), +smalltalk.method({ +selector: unescape('contents'), +category: 'accessor', +fn: function (){ +var self=this; +return smalltalk.send(self['@sourceArea'], "_val", []); return self;}, args: [], -source: unescape('commit'), -messageSends: [], +source: unescape('contents%0A%09%5E%20sourceArea%20val'), +messageSends: ["val"], referencedClasses: [] }), smalltalk.AFICssEditor); @@ -91,12 +110,12 @@ fn: function (html){ var self=this; (self['@sourceArea']=smalltalk.send((smalltalk.AFISourceArea || AFISourceArea), "_new", [])); smalltalk.send(self['@sourceArea'], "_renderOn_", [html]); -smalltalk.send(self, "_refreshContents", []); +(function($rec){smalltalk.send($rec, "_loadCss", []);return smalltalk.send($rec, "_refreshContents", []);})(self); smalltalk.send(self['@sourceArea'], "_onChange_", [(function(){return smalltalk.send(self, "_updateStyleTag", []);})]); return self;}, args: ["html"], -source: unescape('renderBoxOn%3A%20html%0A%20%20%20%20sourceArea%20%3A%3D%20AFISourceArea%20new.%0A%20%20%20%20sourceArea%20renderOn%3A%20html.%0A%0A%20%20%20%20self%20refreshContents.%0A%0A%20%20%20%20sourceArea%20onChange%3A%20%5Bself%20updateStyleTag%5D'), -messageSends: ["new", "renderOn:", "refreshContents", "onChange:", "updateStyleTag"], +source: unescape('renderBoxOn%3A%20html%0A%20%20%20%20sourceArea%20%3A%3D%20AFISourceArea%20new.%0A%20%20%20%20sourceArea%20renderOn%3A%20html.%0A%0A%20%20%20%20self%20loadCss%3B%20refreshContents.%0A%0A%20%20%20%20sourceArea%20onChange%3A%20%5Bself%20updateStyleTag%5D'), +messageSends: ["new", "renderOn:", "loadCss", "refreshContents", "onChange:", "updateStyleTag"], referencedClasses: ["AFISourceArea"] }), smalltalk.AFICssEditor); diff --git a/amber/afi/st/AFI-Core.st b/amber/afi/st/AFI-Core.st index ca9cc61079a..e448f1c6aad 100644 --- a/amber/afi/st/AFI-Core.st +++ b/amber/afi/st/AFI-Core.st @@ -101,8 +101,24 @@ onSuccessDo: aBlock self options at: 'success' put: aBlock ! ! +Ajax class instanceVariableNames: 'opacBaseUrl'! + +!Ajax class methodsFor: 'accessor'! + +opacBaseUrl: aString + opacBaseUrl := aString +! ! + !Ajax class methodsFor: 'initialize'! +controller:controllerName action:actionName + ^ self module: 'opac' controller: controllerName action: actionName +! + +module:moduleName controller:controllerName action:actionName + ^ self url: baseUrl,'/',moduleName,'/',controllerName,'/',actionName +! + url: aString ^ self new url: aString; diff --git a/amber/afi/st/AFI-OPAC.st b/amber/afi/st/AFI-OPAC.st index 2253d825a5c..72dc0df65e1 100644 --- a/amber/afi/st/AFI-OPAC.st +++ b/amber/afi/st/AFI-OPAC.st @@ -5,6 +5,10 @@ TabWidget subclass: #AFICssEditor !AFICssEditor methodsFor: 'accessor'! +contents + ^ sourceArea val +! + contents: aString sourceArea val: aString ! @@ -23,6 +27,16 @@ styleTag !AFICssEditor methodsFor: 'actions'! commit + |ajax| + ajax := Ajax module: 'admin' controller: 'profil' action: 'commit-css'. + ajax options + at: 'type' put: 'PUT'; + at: 'data' put: self contents; + at: 'contentType' put: 'text/css;charset=UTF-8'. + ajax + onErrorDo: [window alert: 'Erreur lors de la sauvegarde: ' ]; + onSuccessDo: [window alert: 'Fichier CSS sauvegardé' ]; + send ! loadCss @@ -49,7 +63,7 @@ renderBoxOn: html sourceArea := AFISourceArea new. sourceArea renderOn: html. - self refreshContents. + self loadCss; refreshContents. sourceArea onChange: [self updateStyleTag] ! diff --git a/library/Class/ScriptLoader.php b/library/Class/ScriptLoader.php index 47f36548335..65757d5bac7 100644 --- a/library/Class/ScriptLoader.php +++ b/library/Class/ScriptLoader.php @@ -403,7 +403,8 @@ class Class_ScriptLoader { public function &getAmberReadyScripts() { if (!isset($this->_amber_ready_scripts)) $this->_amber_ready_scripts = array(sprintf('smalltalk.Package._defaultCommitPathJs_("%s/opac/amber/commitJs")', BASE_URL), - sprintf('smalltalk.Package._defaultCommitPathSt_("%s/opac/amber/commitSt")', BASE_URL)); + sprintf('smalltalk.Package._defaultCommitPathSt_("%s/opac/amber/commitSt")', BASE_URL), + sprintf('smalltalk.Ajax._opacBaseUrl_("%s")', BASE_URL)); return $this->_amber_ready_scripts; } -- GitLab