Commits

Sulaiman Mustafa committed 3ae6882

وديعة تصلح بعض الأخطاء وتضيف بعض المزايا. هذا الإصدار الرسمي الأول للإضافة.

Comments (0)

Files changed (5)

     partials = []
     
     if (!text) return;
-    
-    for (var i in localStorage) if ((i.length >= text.length) && (i.substring(0, text.length) == text)) partials.push(i);
-    if (partials.length>0) {
-        disc = "<dim>Matches: </dim> <match>"+partials[0]+"</match>";
-        if (partials.length>1){
-            disc += " <dim>";
-            disc += partials.slice(1).join(" ");
-            disc += "</dim>";
+    text = text.split(" ")[0];
+    if (text in localStorage) disc = "Run <match>"+text+"</match>";
+    else {
+        for (var i in localStorage) if ((i.length >= text.length) && (i.substring(0, text.length) == text)) partials.push(i);
+        if (partials.length>0) {
+            disc = "<dim>Matches: </dim> <match>"+partials[0]+"</match>";
+            if (partials.length>1){
+                disc += " <dim>";
+                disc += partials.slice(1).join(" ");
+                disc += "</dim>";
+            }
         }
+        else disc = "<dim>No matchs found</dim>";
     }
-    else disc = "<dim>No matchs found</dim>";
     
     chrome.omnibox.setDefaultSuggestion({"description":disc});
 });
 
 chrome.omnibox.onInputEntered.addListener(function(text) {
-    if (text == "+") add();
+    var pre = text.split(" ");
+    text=text.split(" ")[0];
+    if (pre.length > 1)  pre = pre.slice(1).join(" ");
+    else pre = "";
+    
+    if (text == "+") add(pre);
     else if (text == "?" || text == "؟") chrome.tabs.create({'url': 'list.html'});
-    else if (text in localStorage) chrome.tabs.executeScript(null, {"code": localStorage[text]});
-    else if (text && partials.length>0) chrome.tabs.executeScript(null, {"code": localStorage[partials[0]]});
+    else if (text in localStorage) chrome.tabs.executeScript(null, {"code": (pre?pre+";":"")+localStorage[text]});
+    else if (text && partials.length>0) chrome.tabs.executeScript(null, {"code": (pre?pre+";":"")+localStorage[partials[0]]});
     else alert("No bookmarklet regestered with '"+text+"'");
-    console.log(text, localStorage[partials[0]], localStorage[text]);
 });
 
-function add(){
+function add(name){
     var code = prompt("Add the bookmarklet:");
     while (true) {
-        var name = prompt("Give it a name:");
+        if (!name) name = prompt("Give it a name:");
         if (!name) return;
         if ((name in localStorage) && !confirm("'"+name+"' is alrady in use, do you want to overwrite it?")) continue;
         if (name[0] == "-") {
             alert("Names starting with a dash are reserved names.");
+            name = "";
             continue;
         }
         else break;
     alert("Done. Have a nice day.");
 }
 
-if (localStorage["-oriented"] != "true") chrome.tabs.create({'url': 'list.html'});
+if (localStorage["-oriented"] != "true") {
+    ob = [];
+    ob.push('(function(){var f = document.createElement("form"), v = document.createElement("input");f.setAttribute("method", "post");f.setAttribute("action", "http://1sh.me/short.php");v.setAttribute("name", "url");v.setAttribute("value", window.location.href);f.appendChild(v);f.submit();})()');
+ 
+    localStorage["shorten"]=ob[0];
+    localStorage["اختصر"]=ob[0];
+    chrome.tabs.create({'url': 'list.html'});
+}
+أنا مؤلف وكاتب البرنامج قد تنازلت عن جميع حقوقي المتعلقة بالبرنامج من حيث النشر وحد 
+الإستخدام والإحتكار. ملكية البرنامج في النطاق العام.
+
+
+I hereby release the code contained in this directory and supporting material 
+(images) in the public domain.
+
+
 <!DOCTYPE html>
+<!--
+Features:
+    - Same char for both arabic and us layouts
+    - same workflow for both languages
+    - prepend js
+        can be used to tailor scriptlets (but use as last resort) the whole point of scriptlets is that they should be simple and intutive
+        withargs:if (typeof(a)=="undefined") a="No args"; alert(a);
+    - easy managment, editing and backup
+    - add bookmarklets easely
+        + [name]
+        Adding it at the help page
+    
+settings/help page:
+    - if arabic is jumbled up, resize your text then revert
+    - include pics
+    - adding
+        + [name]
+        user page
+    - information
+        ? (or ؟)
+    - prepending js
+        can be used as input, but if you're a bkmrklt writer, don't
+        
+    - if there is a keywork conflict between two extensions; both use =, usinstalling one is not enough. you must reinstall the plugin you want the keyword with to work 
+
+
+-->
 <html>
     <head>
         <meta charset="utf-8">
                 
             }
             localStorage["-oriented"] = "true";
+            window.onbeforeunload=save;
         </script>
         <style type="text/css">
+            ::-webkit-scrollbar {
+                width: 5px;
+            }
+             
+            /* Track */
+            ::-webkit-scrollbar-track {
+                border-radius: 3px;
+                border: 1px solid #ccc;
+                background: #ccc;
+            }
+             
+            /* Handle */
+            ::-webkit-scrollbar-thumb {
+                border-radius: 3px;
+                background: #aaa;
+            }
             #list{
-                position:fixed; top:0px; bottom:0px; border:none;
-                left:50%; right:0px; white-space: nowrap; outline:none;
+                position:fixed; top:2em; bottom:1.2em; border:none;
+                left:52%; right:0px; white-space: nowrap; outline:none;
                 line-height: 1.5em; resize: none; direction:ltr; 
-                text-align:left;
+                text-align:left; overflow-y: auto; overflow-x: hidden;
                 padding-top:3em;
             }
             #content{
-                position:fixed; top:0px; bottom:0px;
+                position:fixed; top:2em; bottom:1.2em;
                 right:50%; left:0px; overflow: auto;
             }
-            .key { 
+
+            .char { 
+                border-radius: 3px; background-color: rgb(255, 224, 0); 
+                padding: .4em; padding-bottom: 0px; padding-top: 0px; 
+                font-size: 0.8em;
+                
+            }
+            .key {
                 border-radius: 3px; border: 1px solid rgb(204, 204, 204);
-                background-color: whiteSmoke; padding: .4em;
-                padding-bottom: 0px; padding-top: 0px; font-size: 0.8em;
-                color: rgb(102, 102, 102); border-bottom-width: 2px; 
+                background-color: whiteSmoke; padding: .5em;
+                padding-bottom: 0px; padding-top: 0px; font-size: 0.7em;
+                color: rgb(102, 102, 102); border-bottom-width: 2px;
+                font-family:sans-serif; 
             }
-            #content > div{
-                width: 60%;
-                margin-right: auto;
-                margin-left: auto;
+            #text {
+                width: 90%; margin-right: auto; margin-left: auto;
+                -webkit-column-count: 2; -webkit-column-gap: 2em;
+                column-count: 2; column-gap: 2em;
+            }
+            #links{
+                position:fixed; bottom:1em; right:50%; left:0px;
+                background-color:white; padding-left:1em; text-align:left;
+                margin-right:5px; font-size:.8em;/*for the scrollbar*/
+            }
+            section{
+                display:inline-block; width:100%;
+            }
+            #message{
+                width: 60%; margin-left: auto; margin-right: auto;
+                text-align: center;
             }
         </style>
     </head>
     <body onload="init()" dir="RTL" lang="ar">
-        <textarea id="list" onkeyup="save()" dir="lrt" lang="en" spellcheck="false"></textarea>
+        <textarea id="list" oncharup="save()" onblur="save()" dir="ltr" lang="en" spellcheck="false"></textarea>
         <div id="content">
             <img src="icon-128.png" alt="" style="display:block;width:128px;margin-left:auto;margin-right:auto">
-            <div>
-                <h3>استِخدَمُها</h3>
-                <p>
-                    إدخل النقطة <span class="key">.</span> في شريط العناوين أعلى 
-                    المتصفح، ثم اتبعه بمسافة. ستجد أن أيقونة الشريط تبدلت إلى شعار 
-                    هذه الإضافة.
-                </p>
-                <h3>مُدْخَلاتُها</h3>
-                <p>
-                    مرر أسم المرجعية (Bookmarklet) كي تنفذها، 
-                    والرمز <span class="key">+</span> لإضافة مرجعية جديدة، 
-                    و <span class="key">?</span> للاطلاع على هذه الصفحة. 
-                </p>
-                <h3>سَجِلُها</h3>
-                <p>
-                    أيمن الصفحة سجل يضم جميع المرجعيات هذه الإضافة، وأي تغيير يحدث 
-                    فيها يغيّر بالمرجعية المخزنة <b>مباشرة</b>. كل مرجعية تقع على
-                    سطر واحد وتنفرد به، ويبدأ السطر بإسم المرجعية ويليه العلامة 
-                    ":" ثم المرجعية نفسها.
-                </p>
-                <p>
-                    للإحتفاظ بجميع المرجعيات، ولنقلها إلى حاسب او متصفح آخر، أنقل 
-                    محتوى هذا السجل وضعه في السجل الآخر.
-                </p>
+            <div id="message">السلام عليكم. الإضافة جاهزة للإستخدام. احرص على <a href="https://bitbucket.org/seininn/omlet/issues/new">التبلغ</a> عن أي علة تواجهها حتى يتم إصلاحها. هذه الإضافة <a href="https://bitbucket.org/seininn/omlet">حرة المصدر</a>.</div>
+            <div id="text">
+                <section>
+                    <h3>استِخدامُها</h3>
+                    <p>
+                        إدخل الرمز <span class="char">=</span> في شريط العناوين أعلى 
+                        المتصفح، ثم اضغط على المفتاح <span class="key">Tab</span>. 
+                        ستجد أن أيقونة الشريط تبدلت إلى شعار هذه الإضافة أو ستجد 
+                        الشعار ضمن قائمة الإقتراحات الظاهرة أسفل الشريط.
+                    </p>
+                </section>
+                <section>
+                    <h3>مُدْخَلاتُها</h3>
+                    <p>
+                        مرر اسم المرجعية (Bookmarklet) كي تنفذها، 
+                        والرمز <span class="char">+</span> لإضافة مرجعية جديدة، 
+                        و <span class="char">?</span> للاطلاع على هذه الصفحة. 
+                    </p>
+                    <p>
+                        يمكنك إضافة جافاسكربت لتنفذ قبل أن تنفيذ المرجعية، وذلك 
+                        بوضعها بعد اسم المرجع: 
+                    </p>
+                        <pre style="overflow:auto; font-size:10px; direction:ltr; text-align:left;">shorten alert("Shortening page!");</pre>
+                    
+                </section>
+                <section>
+                    <h3>سَجِلُها</h3>
+                    <p>
+                        أيمن الصفحة سجل يضم جميع المرجعيات هذه الإضافة، وأي تغيير يحدث 
+                        فيها يغيّر بالمرجعية المخزنة <b>مباشرة</b>. كل مرجعية تقع على
+                        سطر واحد وتنفرد به، ويبدأ السطر بإسم المرجعية ويليه العلامة 
+                        ":" ثم المرجعية نفسها.
+                    </p>
+                    <p>
+                        للإحتفاظ بجميع المرجعيات، ولنقلها إلى حاسب او متصفح آخر، أنقل 
+                        محتوى هذا السجل وضعه في السجل الآخر.
+                    </p>
+                </section>
+                <section>
+                    <h3>حُدودُها</h3>
+                    <p>
+                        الإضافة تعمل على الصفحات الموفرة من خلال <code>http</code> 
+                        و <code>file</code> و <code>https</code> <b>فقط</b>. إفتح 
+                        تقرير لدى موقع تطوير المشروع لإضافة المزيد.
+                        
+                    </p>
+                </section>
+            </div>
+            <div id="links">
+                <a href="http://people.sigh.asia/~sulaiman/software/browsers/omlet">صفحة المشروع</a> |
+                <a href="https://bitbucket.org/seininn/omlet/issues/new">بلع عن علة</a>  |
+                <a href="http://people.sigh.asia/~sulaiman/software/browsers/omlet/bookmarklets.html">مرجعيات مفيدة</a> 
             </div>
         </div>
     </body>
 {
-  "name": "Omlet",
-  "description": "An omnibox-based bookmarklet dictionary",
-  "version": "1.0",
-  "omnibox": { "keyword" : "." },
-  "icons": {
-    "16": "icon-16.png",
-    "48": "icon-48.png",
-    "128": "icon-128.png"
-  },
-  "background": {
+    "name": "Omlet",
+    "description": "An omnibox-based bookmarklet dictionary",
+    "version": "1.0",
+    "omnibox": { "keyword" : "=" },
+    "icons": {
+        "16": "icon-16.png",
+        "48": "icon-48.png",
+        "128": "icon-128.png"
+    },
+    "background": {
     "scripts": ["background.js"]
-  },
-  "permissions": ["tabs", "http://*/*", "https://*/*"]
+    },
+    "permissions": ["tabs", "http://*/*", "https://*/*", "file://*"],
+    "update_url": "http://people.sigh.asia/~sulaiman/software/browsers/omlet/updates.xml"
 }
+Refer to the projects homepage at the top of this page. Downloading the unpacked
+extension can also be initiated from there.
+
+License: PD (see the license file in the base directory)